[libvirt] [PATCH 36/36] cpu_map: Introduce IA32_ARCH_CAPABILITIES MSR features

Jiri Denemark jdenemar at redhat.com
Mon Apr 8 08:42:40 UTC 2019


---
This should not be pushed yet as the QEMU interface for MSR features is
not complete yet. If a domain with some MSR features enabled would be
started, all of them would be marked as disabled in the live domain
configuration (even though they were actually enabled by QEMU) and they
would disappear during migration.

 src/cpu_map/x86_features.xml                    | 17 +++++++++++++++++
 .../x86_64-cpuid-Core-i7-7600U-enabled.xml      |  1 +
 .../x86_64-cpuid-Core-i7-7600U-json.xml         |  1 +
 .../x86_64-cpuid-Xeon-Platinum-8268-enabled.xml |  1 +
 .../x86_64-cpuid-Xeon-Platinum-8268-guest.xml   |  3 +++
 .../x86_64-cpuid-Xeon-Platinum-8268-host.xml    |  3 +++
 .../x86_64-cpuid-Xeon-Platinum-8268-json.xml    |  3 +++
 .../domaincapsschemadata/qemu_3.1.0.x86_64.xml  |  1 +
 .../domaincapsschemadata/qemu_4.0.0.x86_64.xml  |  1 +
 9 files changed, 31 insertions(+)

diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml
index 02431bea29..d73a30017f 100644
--- a/src/cpu_map/x86_features.xml
+++ b/src/cpu_map/x86_features.xml
@@ -476,4 +476,21 @@
   <feature name='amd-no-ssb'>
     <cpuid eax_in='0x80000008' ebx='0x04000000'/>
   </feature>
+
+  <!-- IA32_ARCH_CAPABILITIES features -->
+  <feature name='rdctl-no'>
+    <msr index='0x10a' edx='0x00000000' eax='0x00000001'/>
+  </feature>
+  <feature name='ibrs-all'>
+    <msr index='0x10a' edx='0x00000000' eax='0x00000002'/>
+  </feature>
+  <feature name='rsba'>
+    <msr index='0x10a' edx='0x00000000' eax='0x00000004'/>
+  </feature>
+  <feature name='skip-l1dfl-vmentry'>
+    <msr index='0x10a' edx='0x00000000' eax='0x00000008'/>
+  </feature>
+  <feature name='ssb-no'>
+    <msr index='0x10a' edx='0x00000000' eax='0x00000010'/>
+  </feature>
 </cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-enabled.xml
index b1cdaa802a..58bc84577c 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-enabled.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-enabled.xml
@@ -5,4 +5,5 @@
   <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x009c4fbb' ecx='0x00000004' edx='0x84000000'/>
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
+  <msr index='0x10a' edx='0x00000000' eax='0x00000008'/>
 </cpudata>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml
index 48089c6003..690081493b 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml
@@ -10,4 +10,5 @@
   <feature policy='require' name='ssbd'/>
   <feature policy='require' name='xsaves'/>
   <feature policy='require' name='pdpe1gb'/>
+  <feature policy='require' name='skip-l1dfl-vmentry'/>
 </cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-enabled.xml
index 434ac1956a..313009b156 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-enabled.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-enabled.xml
@@ -5,4 +5,5 @@
   <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0xd19f4fbb' ecx='0x0000080c' edx='0x84000000'/>
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
+  <msr index='0x10a' edx='0x00000000' eax='0x0000000b'/>
 </cpudata>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
index cc1fc90c45..d401230a87 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
@@ -29,4 +29,7 @@
   <feature policy='require' name='mbm_total'/>
   <feature policy='require' name='mbm_local'/>
   <feature policy='require' name='invtsc'/>
+  <feature policy='require' name='rdctl-no'/>
+  <feature policy='require' name='ibrs-all'/>
+  <feature policy='require' name='skip-l1dfl-vmentry'/>
 </cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
index dfabdc57c7..e96712533a 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
@@ -30,4 +30,7 @@
   <feature name='mbm_total'/>
   <feature name='mbm_local'/>
   <feature name='invtsc'/>
+  <feature name='rdctl-no'/>
+  <feature name='ibrs-all'/>
+  <feature name='skip-l1dfl-vmentry'/>
 </cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml
index b7d12dced7..78863c61d1 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml
@@ -7,4 +7,7 @@
   <feature policy='require' name='umip'/>
   <feature policy='require' name='pku'/>
   <feature policy='require' name='xsaves'/>
+  <feature policy='require' name='rdctl-no'/>
+  <feature policy='require' name='ibrs-all'/>
+  <feature policy='require' name='skip-l1dfl-vmentry'/>
 </cpu>
diff --git a/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml b/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml
index f49da218e2..cd816d816d 100644
--- a/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml
@@ -35,6 +35,7 @@
       <feature policy='require' name='xsaves'/>
       <feature policy='require' name='pdpe1gb'/>
       <feature policy='require' name='invtsc'/>
+      <feature policy='require' name='skip-l1dfl-vmentry'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='yes'>qemu64</model>
diff --git a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
index 84c33437a2..7b563d8dc0 100644
--- a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
@@ -35,6 +35,7 @@
       <feature policy='require' name='xsaves'/>
       <feature policy='require' name='pdpe1gb'/>
       <feature policy='require' name='invtsc'/>
+      <feature policy='require' name='skip-l1dfl-vmentry'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='yes'>qemu64</model>
-- 
2.21.0




More information about the libvir-list mailing list