397dc2
From 5936216b6e32392d785979bfd6ccafc5174ec519 Mon Sep 17 00:00:00 2001
397dc2
Message-Id: <5936216b6e32392d785979bfd6ccafc5174ec519@dist-git>
397dc2
From: Jiri Denemark <jdenemar@redhat.com>
397dc2
Date: Thu, 8 Oct 2020 18:01:23 +0200
397dc2
Subject: [PATCH] cpu_map: Add missing AMD SVM features
397dc2
MIME-Version: 1.0
397dc2
Content-Type: text/plain; charset=UTF-8
397dc2
Content-Transfer-Encoding: 8bit
397dc2
397dc2
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
397dc2
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
397dc2
(cherry picked from commit 96a39aad705f8e37950109d11636085b212af790)
397dc2
397dc2
https://bugzilla.redhat.com/show_bug.cgi?id=1861506
397dc2
397dc2
Conflicts:
397dc2
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml
397dc2
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-enabled.xml
397dc2
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
397dc2
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
397dc2
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
397dc2
	tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
397dc2
	tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
397dc2
	tests/domaincapsdata/qemu_5.1.0.x86_64.xml
397dc2
            - not present downstream
397dc2
397dc2
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
397dc2
Message-Id: <d55a2ddfc9aefcc833d3a370c7d70dfb2c0b7554.1602172344.git.jdenemar@redhat.com>
397dc2
Reviewed-by: Ján Tomko <jtomko@redhat.com>
397dc2
---
397dc2
 src/cpu_map/x86_features.xml                  | 32 +++++++++++++++++++
397dc2
 .../x86_64-cpuid-A10-5800K-disabled.xml       |  1 +
397dc2
 .../x86_64-cpuid-A10-5800K-enabled.xml        |  1 +
397dc2
 .../x86_64-cpuid-A10-5800K-guest.xml          | 10 ++++++
397dc2
 .../x86_64-cpuid-A10-5800K-host.xml           | 10 ++++++
397dc2
 .../x86_64-cpuid-A10-5800K-json.xml           |  2 ++
397dc2
 ...86_64-cpuid-EPYC-7601-32-Core-disabled.xml |  1 +
397dc2
 ...x86_64-cpuid-EPYC-7601-32-Core-enabled.xml |  1 +
397dc2
 .../x86_64-cpuid-EPYC-7601-32-Core-guest.xml  | 10 ++++++
397dc2
 .../x86_64-cpuid-EPYC-7601-32-Core-host.xml   | 10 ++++++
397dc2
 ...-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml |  1 +
397dc2
 ...4-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml |  1 +
397dc2
 ..._64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml | 10 ++++++
397dc2
 ...6_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 10 ++++++
397dc2
 ...6_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml |  2 ++
397dc2
 .../x86_64-cpuid-EPYC-7601-32-Core-json.xml   |  2 ++
397dc2
 .../x86_64-cpuid-FX-8150-guest.xml            | 10 ++++++
397dc2
 .../cputestdata/x86_64-cpuid-FX-8150-host.xml | 10 ++++++
397dc2
 ...-cpuid-Hygon-C86-7185-32-core-disabled.xml |  1 +
397dc2
 ...4-cpuid-Hygon-C86-7185-32-core-enabled.xml |  1 +
397dc2
 ..._64-cpuid-Hygon-C86-7185-32-core-guest.xml | 10 ++++++
397dc2
 ...6_64-cpuid-Hygon-C86-7185-32-core-host.xml | 10 ++++++
397dc2
 ...6_64-cpuid-Hygon-C86-7185-32-core-json.xml |  2 ++
397dc2
 .../x86_64-cpuid-Opteron-1352-guest.xml       |  3 ++
397dc2
 .../x86_64-cpuid-Opteron-1352-host.xml        |  3 ++
397dc2
 .../x86_64-cpuid-Opteron-2350-disabled.xml    |  1 +
397dc2
 .../x86_64-cpuid-Opteron-2350-enabled.xml     |  1 +
397dc2
 .../x86_64-cpuid-Opteron-2350-guest.xml       |  3 ++
397dc2
 .../x86_64-cpuid-Opteron-2350-host.xml        |  3 ++
397dc2
 .../x86_64-cpuid-Opteron-2350-json.xml        |  1 +
397dc2
 .../x86_64-cpuid-Opteron-6234-disabled.xml    |  1 +
397dc2
 .../x86_64-cpuid-Opteron-6234-enabled.xml     |  1 +
397dc2
 .../x86_64-cpuid-Opteron-6234-guest.xml       | 10 ++++++
397dc2
 .../x86_64-cpuid-Opteron-6234-host.xml        | 10 ++++++
397dc2
 .../x86_64-cpuid-Opteron-6234-json.xml        |  2 ++
397dc2
 .../x86_64-cpuid-Opteron-6282-guest.xml       | 10 ++++++
397dc2
 .../x86_64-cpuid-Opteron-6282-host.xml        | 10 ++++++
397dc2
 .../x86_64-cpuid-Phenom-B95-disabled.xml      |  1 +
397dc2
 .../x86_64-cpuid-Phenom-B95-enabled.xml       |  1 +
397dc2
 .../x86_64-cpuid-Phenom-B95-guest.xml         |  4 +++
397dc2
 .../x86_64-cpuid-Phenom-B95-host.xml          |  4 +++
397dc2
 .../x86_64-cpuid-Phenom-B95-json.xml          |  2 ++
397dc2
 ...puid-Ryzen-7-1800X-Eight-Core-disabled.xml |  1 +
397dc2
 ...cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml |  1 +
397dc2
 ...4-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 10 ++++++
397dc2
 ...64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 10 ++++++
397dc2
 ...64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml |  2 ++
397dc2
 .../domaincapsdata/qemu_3.0.0-tcg.x86_64.xml  |  1 +
397dc2
 .../domaincapsdata/qemu_3.1.0-tcg.x86_64.xml  |  1 +
397dc2
 .../domaincapsdata/qemu_4.0.0-tcg.x86_64.xml  |  2 ++
397dc2
 .../domaincapsdata/qemu_4.1.0-tcg.x86_64.xml  |  2 ++
397dc2
 .../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml  |  2 ++
397dc2
 .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml  |  2 ++
397dc2
 .../cpu-host-model-cmt.x86_64-4.0.0.args      |  6 ++--
397dc2
 54 files changed, 256 insertions(+), 3 deletions(-)
397dc2
397dc2
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml
397dc2
index 5265b2989b..30d1375437 100644
397dc2
--- a/src/cpu_map/x86_features.xml
397dc2
+++ b/src/cpu_map/x86_features.xml
397dc2
@@ -508,6 +508,38 @@
397dc2
     <cpuid eax_in='0x80000008' ebx='0x04000000'/>
397dc2
   </feature>
397dc2
 
397dc2
+  
397dc2
+  <feature name='npt'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000001'/>
397dc2
+  </feature>
397dc2
+  <feature name='lbrv'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000002'/>
397dc2
+  </feature>
397dc2
+  <feature name='svm-lock'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000004'/>
397dc2
+  </feature>
397dc2
+  <feature name='nrip-save'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000008'/>
397dc2
+  </feature>
397dc2
+  <feature name='tsc-scale'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000010'/>
397dc2
+  </feature>
397dc2
+  <feature name='vmcb-clean'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000020'/>
397dc2
+  </feature>
397dc2
+  <feature name='flushbyasid'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000040'/>
397dc2
+  </feature>
397dc2
+  <feature name='decodeassists'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000080'/>
397dc2
+  </feature>
397dc2
+  <feature name='pause-filter'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00000400'/>
397dc2
+  </feature>
397dc2
+  <feature name='pfthreshold'>
397dc2
+    <cpuid eax_in='0x8000000a' edx='0x00001000'/>
397dc2
+  </feature>
397dc2
+
397dc2
   
397dc2
   <feature name='rdctl-no'>
397dc2
     <msr index='0x10a' edx='0x00000000' eax='0x00000001'/>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-A10-5800K-disabled.xml b/tests/cputestdata/x86_64-cpuid-A10-5800K-disabled.xml
397dc2
index 6ed5b3573b..3bacf2cf95 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-A10-5800K-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-A10-5800K-disabled.xml
397dc2
@@ -3,4 +3,5 @@
397dc2
   <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x08000008' edx='0x10000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01cab40c' edx='0x08000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-A10-5800K-enabled.xml b/tests/cputestdata/x86_64-cpuid-A10-5800K-enabled.xml
397dc2
index 5cae0b7130..f6afbe2cb3 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-A10-5800K-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-A10-5800K-enabled.xml
397dc2
@@ -3,4 +3,5 @@
397dc2
   <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0xb6b83203' edx='0x078bfbff'/>
397dc2
   <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x0000000a' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00210bf3' edx='0x26500800'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-A10-5800K-guest.xml b/tests/cputestdata/x86_64-cpuid-A10-5800K-guest.xml
397dc2
index 98a95e1c41..8401e53d30 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-A10-5800K-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-A10-5800K-guest.xml
397dc2
@@ -22,4 +22,14 @@
397dc2
   <feature policy='require' name='perfctr_core'/>
397dc2
   <feature policy='require' name='perfctr_nb'/>
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-A10-5800K-host.xml b/tests/cputestdata/x86_64-cpuid-A10-5800K-host.xml
397dc2
index cb90c967a3..2430adbfbc 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-A10-5800K-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-A10-5800K-host.xml
397dc2
@@ -23,4 +23,14 @@
397dc2
   <feature name='perfctr_core'/>
397dc2
   <feature name='perfctr_nb'/>
397dc2
   <feature name='invtsc'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-A10-5800K-json.xml b/tests/cputestdata/x86_64-cpuid-A10-5800K-json.xml
397dc2
index fa61b7b60b..51e6d2b660 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-A10-5800K-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-A10-5800K-json.xml
397dc2
@@ -11,6 +11,8 @@
397dc2
   <feature policy='require' name='cmp_legacy'/>
397dc2
   <feature policy='require' name='cr8legacy'/>
397dc2
   <feature policy='require' name='osvw'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='rdtscp'/>
397dc2
   <feature policy='disable' name='svm'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml
397dc2
index c26c9c7be3..25ef2d3314 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml
397dc2
@@ -5,4 +5,5 @@
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
   <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml
397dc2
index 70b75f7115..e46908e981 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml
397dc2
@@ -5,4 +5,5 @@
397dc2
   <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x209c01ab' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000007' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f3' edx='0x2e500800'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
397dc2
index 612e571609..0053913327 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
397dc2
@@ -15,4 +15,14 @@
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
   <feature policy='require' name='clzero'/>
397dc2
   <feature policy='require' name='xsaveerptr'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
397dc2
index 7498d924e2..7acab0a999 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
397dc2
@@ -16,4 +16,14 @@
397dc2
   <feature name='invtsc'/>
397dc2
   <feature name='clzero'/>
397dc2
   <feature name='xsaveerptr'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
397dc2
index a7f4fa3f01..f4d92cf034 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
397dc2
@@ -5,4 +5,5 @@
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x08000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
   <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml
397dc2
index 772456f947..910491c7f6 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml
397dc2
@@ -6,4 +6,5 @@
397dc2
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000007' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f3' edx='0x26500800'/>
397dc2
   <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00001000' ecx='0x00000000' edx='0x00000000'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
397dc2
index 96fdea306f..9164987bbd 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
397dc2
@@ -15,5 +15,15 @@
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
   <feature policy='require' name='clzero'/>
397dc2
   <feature policy='require' name='xsaveerptr'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
   <feature policy='disable' name='rdtscp'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
397dc2
index 4fff74f3aa..2fa8861e44 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
397dc2
@@ -16,4 +16,14 @@
397dc2
   <feature name='invtsc'/>
397dc2
   <feature name='clzero'/>
397dc2
   <feature name='xsaveerptr'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml
397dc2
index c4e34a0fa1..af1e7f2f32 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml
397dc2
@@ -6,6 +6,8 @@
397dc2
   <feature policy='require' name='hypervisor'/>
397dc2
   <feature policy='require' name='tsc_adjust'/>
397dc2
   <feature policy='require' name='cmp_legacy'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='monitor'/>
397dc2
   <feature policy='disable' name='rdtscp'/>
397dc2
   <feature policy='disable' name='svm'/>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml
397dc2
index 7bf2d1b852..4450a40f61 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml
397dc2
@@ -6,6 +6,8 @@
397dc2
   <feature policy='require' name='hypervisor'/>
397dc2
   <feature policy='require' name='tsc_adjust'/>
397dc2
   <feature policy='require' name='cmp_legacy'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='monitor'/>
397dc2
   <feature policy='disable' name='svm'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-FX-8150-guest.xml b/tests/cputestdata/x86_64-cpuid-FX-8150-guest.xml
397dc2
index 6bd032bbcb..ee34ea8547 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-FX-8150-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-FX-8150-guest.xml
397dc2
@@ -20,4 +20,14 @@
397dc2
   <feature policy='require' name='perfctr_core'/>
397dc2
   <feature policy='require' name='perfctr_nb'/>
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-FX-8150-host.xml b/tests/cputestdata/x86_64-cpuid-FX-8150-host.xml
397dc2
index ec670c612e..75595c02af 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-FX-8150-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-FX-8150-host.xml
397dc2
@@ -21,4 +21,14 @@
397dc2
   <feature name='perfctr_core'/>
397dc2
   <feature name='perfctr_nb'/>
397dc2
   <feature name='invtsc'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml
397dc2
index c26c9c7be3..25ef2d3314 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml
397dc2
@@ -5,4 +5,5 @@
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
   <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-enabled.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-enabled.xml
397dc2
index fcefcf73c8..9181c3a9fe 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-enabled.xml
397dc2
@@ -6,4 +6,5 @@
397dc2
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000007' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f3' edx='0x2e500800'/>
397dc2
   <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x02001000' ecx='0x00000000' edx='0x00000000'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml
397dc2
index 844b8b9d4f..08c574255e 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml
397dc2
@@ -15,4 +15,14 @@
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
   <feature policy='require' name='clzero'/>
397dc2
   <feature policy='require' name='xsaveerptr'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml
397dc2
index 3d1b143eba..f1cddb6a19 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml
397dc2
@@ -16,4 +16,14 @@
397dc2
   <feature name='invtsc'/>
397dc2
   <feature name='clzero'/>
397dc2
   <feature name='xsaveerptr'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-json.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-json.xml
397dc2
index d3003b6965..0fdd934c08 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-json.xml
397dc2
@@ -7,6 +7,8 @@
397dc2
   <feature policy='require' name='tsc_adjust'/>
397dc2
   <feature policy='require' name='cmp_legacy'/>
397dc2
   <feature policy='require' name='virt-ssbd'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='monitor'/>
397dc2
   <feature policy='disable' name='svm'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-1352-guest.xml b/tests/cputestdata/x86_64-cpuid-Opteron-1352-guest.xml
397dc2
index 652f1e4333..a52c4cd303 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-1352-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-1352-guest.xml
397dc2
@@ -15,4 +15,7 @@
397dc2
   <feature policy='require' name='osvw'/>
397dc2
   <feature policy='require' name='ibs'/>
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml b/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml
397dc2
index 399398eb3a..800b092f14 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml
397dc2
@@ -16,4 +16,7 @@
397dc2
   <feature name='osvw'/>
397dc2
   <feature name='ibs'/>
397dc2
   <feature name='invtsc'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-2350-disabled.xml b/tests/cputestdata/x86_64-cpuid-Opteron-2350-disabled.xml
397dc2
index 8ec1b12582..3f6fe54055 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-2350-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-2350-disabled.xml
397dc2
@@ -3,4 +3,5 @@
397dc2
   <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000008' edx='0x10000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000408' edx='0x08000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-2350-enabled.xml b/tests/cputestdata/x86_64-cpuid-Opteron-2350-enabled.xml
397dc2
index 913980f15f..5fd0d6066d 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-2350-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-2350-enabled.xml
397dc2
@@ -2,4 +2,5 @@
397dc2
 <cpudata arch='x86'>
397dc2
   <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x81a02001' edx='0x078bfbff'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f7' edx='0xe6500800'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000001'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-2350-guest.xml b/tests/cputestdata/x86_64-cpuid-Opteron-2350-guest.xml
397dc2
index 652f1e4333..a52c4cd303 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-2350-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-2350-guest.xml
397dc2
@@ -15,4 +15,7 @@
397dc2
   <feature policy='require' name='osvw'/>
397dc2
   <feature policy='require' name='ibs'/>
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml b/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml
397dc2
index 399398eb3a..800b092f14 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml
397dc2
@@ -16,4 +16,7 @@
397dc2
   <feature name='osvw'/>
397dc2
   <feature name='ibs'/>
397dc2
   <feature name='invtsc'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-2350-json.xml b/tests/cputestdata/x86_64-cpuid-Opteron-2350-json.xml
397dc2
index 741757aeb2..d128553c13 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-2350-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-2350-json.xml
397dc2
@@ -14,6 +14,7 @@
397dc2
   <feature policy='require' name='cr8legacy'/>
397dc2
   <feature policy='require' name='3dnowprefetch'/>
397dc2
   <feature policy='require' name='osvw'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
   <feature policy='disable' name='monitor'/>
397dc2
   <feature policy='disable' name='rdtscp'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-6234-disabled.xml b/tests/cputestdata/x86_64-cpuid-Opteron-6234-disabled.xml
397dc2
index 88124d1745..4dcd74103b 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-6234-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-6234-disabled.xml
397dc2
@@ -3,4 +3,5 @@
397dc2
   <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x08000008' edx='0x10000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c8b40c' edx='0x08000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-6234-enabled.xml b/tests/cputestdata/x86_64-cpuid-Opteron-6234-enabled.xml
397dc2
index 38d716449d..890b5df060 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-6234-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-6234-enabled.xml
397dc2
@@ -4,4 +4,5 @@
397dc2
   <cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000004' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000002' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00010bf3' edx='0x26500800'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-6234-guest.xml b/tests/cputestdata/x86_64-cpuid-Opteron-6234-guest.xml
397dc2
index 6bd032bbcb..ee34ea8547 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-6234-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-6234-guest.xml
397dc2
@@ -20,4 +20,14 @@
397dc2
   <feature policy='require' name='perfctr_core'/>
397dc2
   <feature policy='require' name='perfctr_nb'/>
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-6234-host.xml b/tests/cputestdata/x86_64-cpuid-Opteron-6234-host.xml
397dc2
index ec670c612e..75595c02af 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-6234-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-6234-host.xml
397dc2
@@ -21,4 +21,14 @@
397dc2
   <feature name='perfctr_core'/>
397dc2
   <feature name='perfctr_nb'/>
397dc2
   <feature name='invtsc'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-6234-json.xml b/tests/cputestdata/x86_64-cpuid-Opteron-6234-json.xml
397dc2
index 2ad3c98a5a..abfc8db290 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-6234-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-6234-json.xml
397dc2
@@ -12,6 +12,8 @@
397dc2
   <feature policy='require' name='cmp_legacy'/>
397dc2
   <feature policy='require' name='cr8legacy'/>
397dc2
   <feature policy='require' name='osvw'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='rdtscp'/>
397dc2
   <feature policy='disable' name='svm'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-6282-guest.xml b/tests/cputestdata/x86_64-cpuid-Opteron-6282-guest.xml
397dc2
index 6bd032bbcb..ee34ea8547 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-6282-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-6282-guest.xml
397dc2
@@ -20,4 +20,14 @@
397dc2
   <feature policy='require' name='perfctr_core'/>
397dc2
   <feature policy='require' name='perfctr_nb'/>
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-6282-host.xml b/tests/cputestdata/x86_64-cpuid-Opteron-6282-host.xml
397dc2
index ec670c612e..75595c02af 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Opteron-6282-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-6282-host.xml
397dc2
@@ -21,4 +21,14 @@
397dc2
   <feature name='perfctr_core'/>
397dc2
   <feature name='perfctr_nb'/>
397dc2
   <feature name='invtsc'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Phenom-B95-disabled.xml b/tests/cputestdata/x86_64-cpuid-Phenom-B95-disabled.xml
397dc2
index d8d4e8a5f9..3910eb6e57 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Phenom-B95-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Phenom-B95-disabled.xml
397dc2
@@ -3,4 +3,5 @@
397dc2
   <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000008' edx='0x10000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0000340c' edx='0x08000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Phenom-B95-enabled.xml b/tests/cputestdata/x86_64-cpuid-Phenom-B95-enabled.xml
397dc2
index d15e625087..2a090a04d8 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Phenom-B95-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Phenom-B95-enabled.xml
397dc2
@@ -2,4 +2,5 @@
397dc2
 <cpudata arch='x86'>
397dc2
   <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x80a02001' edx='0x078bfbff'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f3' edx='0xe6400800'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Phenom-B95-guest.xml b/tests/cputestdata/x86_64-cpuid-Phenom-B95-guest.xml
397dc2
index d7a06108bc..ab0e99f97d 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Phenom-B95-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Phenom-B95-guest.xml
397dc2
@@ -17,5 +17,9 @@
397dc2
   <feature policy='require' name='skinit'/>
397dc2
   <feature policy='require' name='wdt'/>
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='nx'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml b/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml
397dc2
index 127b047854..95875918c9 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml
397dc2
@@ -28,4 +28,8 @@
397dc2
   <feature name='skinit'/>
397dc2
   <feature name='wdt'/>
397dc2
   <feature name='invtsc'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Phenom-B95-json.xml b/tests/cputestdata/x86_64-cpuid-Phenom-B95-json.xml
397dc2
index 7ce56ac8e7..d161709981 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Phenom-B95-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Phenom-B95-json.xml
397dc2
@@ -13,6 +13,8 @@
397dc2
   <feature policy='require' name='cr8legacy'/>
397dc2
   <feature policy='require' name='3dnowprefetch'/>
397dc2
   <feature policy='require' name='osvw'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='monitor'/>
397dc2
   <feature policy='disable' name='nx'/>
397dc2
   <feature policy='disable' name='rdtscp'/>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
397dc2
index 0358ecf478..a63cd5c4b4 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
397dc2
@@ -6,4 +6,5 @@
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c23008' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
397dc2
   <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml
397dc2
index a212679fba..f1a0ad3315 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml
397dc2
@@ -5,4 +5,5 @@
397dc2
   <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x009c01ab' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000007' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
397dc2
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f7' edx='0x2e500800'/>
397dc2
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/>
397dc2
 </cpudata>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
397dc2
index 612e571609..0053913327 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
397dc2
@@ -15,4 +15,14 @@
397dc2
   <feature policy='require' name='invtsc'/>
397dc2
   <feature policy='require' name='clzero'/>
397dc2
   <feature policy='require' name='xsaveerptr'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='lbrv'/>
397dc2
+  <feature policy='require' name='svm-lock'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
+  <feature policy='require' name='tsc-scale'/>
397dc2
+  <feature policy='require' name='vmcb-clean'/>
397dc2
+  <feature policy='require' name='flushbyasid'/>
397dc2
+  <feature policy='require' name='decodeassists'/>
397dc2
+  <feature policy='require' name='pause-filter'/>
397dc2
+  <feature policy='require' name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
397dc2
index 7498d924e2..7acab0a999 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
397dc2
@@ -16,4 +16,14 @@
397dc2
   <feature name='invtsc'/>
397dc2
   <feature name='clzero'/>
397dc2
   <feature name='xsaveerptr'/>
397dc2
+  <feature name='npt'/>
397dc2
+  <feature name='lbrv'/>
397dc2
+  <feature name='svm-lock'/>
397dc2
+  <feature name='nrip-save'/>
397dc2
+  <feature name='tsc-scale'/>
397dc2
+  <feature name='vmcb-clean'/>
397dc2
+  <feature name='flushbyasid'/>
397dc2
+  <feature name='decodeassists'/>
397dc2
+  <feature name='pause-filter'/>
397dc2
+  <feature name='pfthreshold'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml
397dc2
index 32064548c7..aecc335c1e 100644
397dc2
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml
397dc2
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml
397dc2
@@ -6,6 +6,8 @@
397dc2
   <feature policy='require' name='hypervisor'/>
397dc2
   <feature policy='require' name='tsc_adjust'/>
397dc2
   <feature policy='require' name='cmp_legacy'/>
397dc2
+  <feature policy='require' name='npt'/>
397dc2
+  <feature policy='require' name='nrip-save'/>
397dc2
   <feature policy='disable' name='monitor'/>
397dc2
   <feature policy='disable' name='sha-ni'/>
397dc2
 </cpu>
397dc2
diff --git a/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
397dc2
index d369fa827a..d3211e7a13 100644
397dc2
--- a/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
397dc2
+++ b/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
397dc2
@@ -43,6 +43,7 @@
397dc2
       <feature policy='require' name='la57'/>
397dc2
       <feature policy='require' name='3dnowext'/>
397dc2
       <feature policy='require' name='3dnow'/>
397dc2
+      <feature policy='require' name='npt'/>
397dc2
       <feature policy='disable' name='vme'/>
397dc2
       <feature policy='disable' name='fma'/>
397dc2
       <feature policy='disable' name='avx'/>
397dc2
diff --git a/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
397dc2
index 444d90504e..756b28034e 100644
397dc2
--- a/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
397dc2
+++ b/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
397dc2
@@ -43,6 +43,7 @@
397dc2
       <feature policy='require' name='la57'/>
397dc2
       <feature policy='require' name='3dnowext'/>
397dc2
       <feature policy='require' name='3dnow'/>
397dc2
+      <feature policy='require' name='npt'/>
397dc2
       <feature policy='disable' name='vme'/>
397dc2
       <feature policy='disable' name='fma'/>
397dc2
       <feature policy='disable' name='avx'/>
397dc2
diff --git a/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
397dc2
index 463f0db390..0aa8aa18be 100644
397dc2
--- a/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
397dc2
+++ b/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
397dc2
@@ -43,6 +43,7 @@
397dc2
       <feature policy='require' name='la57'/>
397dc2
       <feature policy='require' name='3dnowext'/>
397dc2
       <feature policy='require' name='3dnow'/>
397dc2
+      <feature policy='require' name='npt'/>
397dc2
       <feature policy='disable' name='vme'/>
397dc2
       <feature policy='disable' name='fma'/>
397dc2
       <feature policy='disable' name='avx'/>
397dc2
@@ -57,6 +58,7 @@
397dc2
       <feature policy='disable' name='3dnowprefetch'/>
397dc2
       <feature policy='disable' name='osvw'/>
397dc2
       <feature policy='disable' name='topoext'/>
397dc2
+      <feature policy='disable' name='nrip-save'/>
397dc2
     </mode>
397dc2
     <mode name='custom' supported='yes'>
397dc2
       <model usable='yes'>qemu64</model>
397dc2
diff --git a/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
397dc2
index 5bfd065986..d6265ce243 100644
397dc2
--- a/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
397dc2
+++ b/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
397dc2
@@ -43,6 +43,7 @@
397dc2
       <feature policy='require' name='la57'/>
397dc2
       <feature policy='require' name='3dnowext'/>
397dc2
       <feature policy='require' name='3dnow'/>
397dc2
+      <feature policy='require' name='npt'/>
397dc2
       <feature policy='disable' name='vme'/>
397dc2
       <feature policy='disable' name='fma'/>
397dc2
       <feature policy='disable' name='avx'/>
397dc2
@@ -57,6 +58,7 @@
397dc2
       <feature policy='disable' name='osvw'/>
397dc2
       <feature policy='disable' name='topoext'/>
397dc2
       <feature policy='disable' name='ibpb'/>
397dc2
+      <feature policy='disable' name='nrip-save'/>
397dc2
     </mode>
397dc2
     <mode name='custom' supported='yes'>
397dc2
       <model usable='yes'>qemu64</model>
397dc2
diff --git a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
397dc2
index c762b0b600..bcaf9afd6f 100644
397dc2
--- a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
397dc2
+++ b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
397dc2
@@ -43,6 +43,7 @@
397dc2
       <feature policy='require' name='la57'/>
397dc2
       <feature policy='require' name='3dnowext'/>
397dc2
       <feature policy='require' name='3dnow'/>
397dc2
+      <feature policy='require' name='npt'/>
397dc2
       <feature policy='disable' name='vme'/>
397dc2
       <feature policy='disable' name='fma'/>
397dc2
       <feature policy='disable' name='avx'/>
397dc2
@@ -57,6 +58,7 @@
397dc2
       <feature policy='disable' name='osvw'/>
397dc2
       <feature policy='disable' name='topoext'/>
397dc2
       <feature policy='disable' name='ibpb'/>
397dc2
+      <feature policy='disable' name='nrip-save'/>
397dc2
     </mode>
397dc2
     <mode name='custom' supported='yes'>
397dc2
       <model usable='yes'>qemu64</model>
397dc2
diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
397dc2
index 0a4bb16a89..eb456dea28 100644
397dc2
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
397dc2
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
397dc2
@@ -43,6 +43,7 @@
397dc2
       <feature policy='require' name='la57'/>
397dc2
       <feature policy='require' name='3dnowext'/>
397dc2
       <feature policy='require' name='3dnow'/>
397dc2
+      <feature policy='require' name='npt'/>
397dc2
       <feature policy='disable' name='vme'/>
397dc2
       <feature policy='disable' name='fma'/>
397dc2
       <feature policy='disable' name='avx'/>
397dc2
@@ -56,6 +57,7 @@
397dc2
       <feature policy='disable' name='3dnowprefetch'/>
397dc2
       <feature policy='disable' name='osvw'/>
397dc2
       <feature policy='disable' name='topoext'/>
397dc2
+      <feature policy='disable' name='nrip-save'/>
397dc2
     </mode>
397dc2
     <mode name='custom' supported='yes'>
397dc2
       <model usable='yes'>qemu64</model>
397dc2
diff --git a/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args b/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args
397dc2
index b44dc2ec48..6ee7bed18e 100644
397dc2
--- a/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args
397dc2
+++ b/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args
397dc2
@@ -14,9 +14,9 @@ QEMU_AUDIO_DRV=none \
397dc2
 file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
397dc2
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
397dc2
 -cpu EPYC,acpi=on,ss=on,hypervisor=on,erms=on,mpx=on,pcommit=on,clwb=on,pku=on,\
397dc2
-la57=on,3dnowext=on,3dnow=on,vme=off,fma=off,avx=off,f16c=off,rdrand=off,\
397dc2
-avx2=off,rdseed=off,sha-ni=off,xsavec=off,fxsr_opt=off,misalignsse=off,\
397dc2
-3dnowprefetch=off,osvw=off,topoext=off \
397dc2
+la57=on,3dnowext=on,3dnow=on,npt=on,vme=off,fma=off,avx=off,f16c=off,\
397dc2
+rdrand=off,avx2=off,rdseed=off,sha-ni=off,xsavec=off,fxsr_opt=off,\
397dc2
+misalignsse=off,3dnowprefetch=off,osvw=off,topoext=off,nrip-save=off \
397dc2
 -m 214 \
397dc2
 -overcommit mem-lock=off \
397dc2
 -smp 6,sockets=6,cores=1,threads=1 \
397dc2
-- 
397dc2
2.29.2
397dc2