a41c76
From 7d0790fb5061cb956390ce5f7a2b92ac9702ada6 Mon Sep 17 00:00:00 2001
a41c76
Message-Id: <7d0790fb5061cb956390ce5f7a2b92ac9702ada6@dist-git>
a41c76
From: Jiri Denemark <jdenemar@redhat.com>
a41c76
Date: Tue, 26 May 2020 10:59:39 +0200
a41c76
Subject: [PATCH] cpu_map: Add pschange-mc-no bit in IA32_ARCH_CAPABILITIES MSR
a41c76
MIME-Version: 1.0
a41c76
Content-Type: text/plain; charset=UTF-8
a41c76
Content-Transfer-Encoding: 8bit
a41c76
a41c76
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
a41c76
(cherry picked from commit 12eb0c9496e802bad9e5ec71cde888b8fdb1b0b4)
a41c76
a41c76
https://bugzilla.redhat.com/show_bug.cgi?id=1781878
a41c76
a41c76
Conflicts:
a41c76
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-enabled.xml
a41c76
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
a41c76
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
a41c76
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
a41c76
	tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
a41c76
	tests/domaincapsdata/qemu_5.1.0.x86_64.xml
a41c76
            - test data files do not exist downstream
a41c76
a41c76
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
Message-Id: <d106df21f8423a9acff9eb5bf75ab25611c1de1f.1590483392.git.jdenemar@redhat.com>
a41c76
Reviewed-by: Ján Tomko <jtomko@redhat.com>
a41c76
---
a41c76
 src/cpu_map/x86_features.xml                                  | 3 +++
a41c76
 tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml           | 1 +
a41c76
 tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml            | 1 +
a41c76
 tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml            | 1 +
a41c76
 tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml      | 2 +-
a41c76
 tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml        | 1 +
a41c76
 tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml         | 1 +
a41c76
 tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml         | 1 +
a41c76
 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 2 +-
a41c76
 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml    | 1 +
a41c76
 tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml                | 1 +
a41c76
 tests/domaincapsdata/qemu_4.2.0.x86_64.xml                    | 1 +
a41c76
 tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml                | 1 +
a41c76
 tests/domaincapsdata/qemu_5.0.0.x86_64.xml                    | 1 +
a41c76
 14 files changed, 16 insertions(+), 2 deletions(-)
a41c76
a41c76
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml
a41c76
index 2c4c29dc99..8525ae0fa5 100644
a41c76
--- a/src/cpu_map/x86_features.xml
a41c76
+++ b/src/cpu_map/x86_features.xml
a41c76
@@ -509,6 +509,9 @@
a41c76
   <feature name='mds-no'>
a41c76
     <msr index='0x10a' edx='0x00000000' eax='0x00000020'/>
a41c76
   </feature>
a41c76
+  <feature name='pschange-mc-no'>
a41c76
+    <msr index='0x10a' edx='0x00000000' eax='0x00000040'/>
a41c76
+  </feature>
a41c76
   <feature name='tsx-ctrl'>
a41c76
     <msr index='0x10a' edx='0x00000000' eax='0x00000080'/>
a41c76
   </feature>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
index b5137e3c03..db5598740c 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
@@ -35,6 +35,7 @@
a41c76
   <feature policy='require' name='ibrs-all'/>
a41c76
   <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
   <feature policy='require' name='mds-no'/>
a41c76
+  <feature policy='require' name='pschange-mc-no'/>
a41c76
   <feature policy='require' name='tsx-ctrl'/>
a41c76
   <feature policy='require' name='taa-no'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
index 52b352f4f1..6926b7c975 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
@@ -36,6 +36,7 @@
a41c76
   <feature name='ibrs-all'/>
a41c76
   <feature name='skip-l1dfl-vmentry'/>
a41c76
   <feature name='mds-no'/>
a41c76
+  <feature name='pschange-mc-no'/>
a41c76
   <feature name='tsx-ctrl'/>
a41c76
   <feature name='taa-no'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
index e323d6205e..fc52805b2f 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
@@ -18,6 +18,7 @@
a41c76
   <feature policy='require' name='ibrs-all'/>
a41c76
   <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
   <feature policy='require' name='mds-no'/>
a41c76
+  <feature policy='require' name='pschange-mc-no'/>
a41c76
   <feature policy='require' name='tsx-ctrl'/>
a41c76
   <feature policy='require' name='taa-no'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml
a41c76
index 6c480eeacf..57f8ebabba 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml
a41c76
@@ -5,5 +5,5 @@
a41c76
   <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x009c47ab' ecx='0x00000004' edx='0xac000400'/>
a41c76
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
a41c76
-  <msr index='0x10a' edx='0x00000000' eax='0x00000008'/>
a41c76
+  <msr index='0x10a' edx='0x00000000' eax='0x00000048'/>
a41c76
 </cpudata>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
a41c76
index 92404e4d03..ed06515e99 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
a41c76
@@ -26,6 +26,7 @@
a41c76
   <feature policy='require' name='pdpe1gb'/>
a41c76
   <feature policy='require' name='invtsc'/>
a41c76
   <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+  <feature policy='require' name='pschange-mc-no'/>
a41c76
   <feature policy='disable' name='hle'/>
a41c76
   <feature policy='disable' name='rtm'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
a41c76
index 7f6fe2eac3..7681c94649 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
a41c76
@@ -27,4 +27,5 @@
a41c76
   <feature name='pdpe1gb'/>
a41c76
   <feature name='invtsc'/>
a41c76
   <feature name='skip-l1dfl-vmentry'/>
a41c76
+  <feature name='pschange-mc-no'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
a41c76
index 645c0934c2..4774d39c7e 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
a41c76
@@ -14,6 +14,7 @@
a41c76
   <feature policy='require' name='xsaves'/>
a41c76
   <feature policy='require' name='pdpe1gb'/>
a41c76
   <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+  <feature policy='require' name='pschange-mc-no'/>
a41c76
   <feature policy='disable' name='hle'/>
a41c76
   <feature policy='disable' name='rtm'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml
a41c76
index 43c3a93a16..cd082feffe 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml
a41c76
@@ -6,5 +6,5 @@
a41c76
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
a41c76
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
a41c76
   <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01001000' ecx='0x00000000' edx='0x00000000'/>
a41c76
-  <msr index='0x10a' edx='0x00000000' eax='0x000000ab'/>
a41c76
+  <msr index='0x10a' edx='0x00000000' eax='0x000000eb'/>
a41c76
 </cpudata>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml
a41c76
index 36e95029be..10c256ee1e 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml
a41c76
@@ -17,5 +17,6 @@
a41c76
   <feature policy='require' name='ibrs-all'/>
a41c76
   <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
   <feature policy='require' name='mds-no'/>
a41c76
+  <feature policy='require' name='pschange-mc-no'/>
a41c76
   <feature policy='require' name='tsx-ctrl'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
a41c76
index e257657981..4d9616cb69 100644
a41c76
--- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
a41c76
+++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
a41c76
@@ -47,6 +47,7 @@
a41c76
       <feature policy='require' name='pdpe1gb'/>
a41c76
       <feature policy='require' name='invtsc'/>
a41c76
       <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+      <feature policy='require' name='pschange-mc-no'/>
a41c76
     </mode>
a41c76
     <mode name='custom' supported='yes'>
a41c76
       <model usable='yes'>qemu64</model>
a41c76
diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
a41c76
index 2918ba9715..5210c917aa 100644
a41c76
--- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
a41c76
+++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
a41c76
@@ -46,6 +46,7 @@
a41c76
       <feature policy='require' name='pdpe1gb'/>
a41c76
       <feature policy='require' name='invtsc'/>
a41c76
       <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+      <feature policy='require' name='pschange-mc-no'/>
a41c76
     </mode>
a41c76
     <mode name='custom' supported='yes'>
a41c76
       <model usable='yes'>qemu64</model>
a41c76
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
a41c76
index 7b2a929738..b7e2c8a4fe 100644
a41c76
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
a41c76
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
a41c76
@@ -47,6 +47,7 @@
a41c76
       <feature policy='require' name='pdpe1gb'/>
a41c76
       <feature policy='require' name='invtsc'/>
a41c76
       <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+      <feature policy='require' name='pschange-mc-no'/>
a41c76
     </mode>
a41c76
     <mode name='custom' supported='yes'>
a41c76
       <model usable='yes'>qemu64</model>
a41c76
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
a41c76
index 7609d49020..d2741375b4 100644
a41c76
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
a41c76
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
a41c76
@@ -46,6 +46,7 @@
a41c76
       <feature policy='require' name='pdpe1gb'/>
a41c76
       <feature policy='require' name='invtsc'/>
a41c76
       <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
+      <feature policy='require' name='pschange-mc-no'/>
a41c76
     </mode>
a41c76
     <mode name='custom' supported='yes'>
a41c76
       <model usable='yes'>qemu64</model>
a41c76
-- 
a41c76
2.26.2
a41c76