7548c0
From 1d6a30efa98fc0cf39725792efae1a151797589f Mon Sep 17 00:00:00 2001
7548c0
Message-Id: <1d6a30efa98fc0cf39725792efae1a151797589f@dist-git>
7548c0
From: Jiri Denemark <jdenemar@redhat.com>
7548c0
Date: Thu, 8 Oct 2020 18:01:22 +0200
7548c0
Subject: [PATCH] cpu_map: Add missing x86 features in 0x80000008 CPUID leaf
7548c0
MIME-Version: 1.0
7548c0
Content-Type: text/plain; charset=UTF-8
7548c0
Content-Transfer-Encoding: 8bit
7548c0
7548c0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
7548c0
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
7548c0
(cherry picked from commit 892b7c70f66abc511e1251382c9183493024f253)
7548c0
7548c0
https://bugzilla.redhat.com/show_bug.cgi?id=1861506
7548c0
7548c0
Conflicts:
7548c0
	tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml
7548c0
	tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
7548c0
	tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml
7548c0
	tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
7548c0
            - commit df69263c26 (cpu_map: Request test files update when
7548c0
              adding x86 features) not backported
7548c0
7548c0
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml
7548c0
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-enabled.xml
7548c0
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
7548c0
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
7548c0
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
7548c0
	tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
7548c0
	tests/domaincapsdata/qemu_5.1.0.x86_64.xml
7548c0
            - not present downstream
7548c0
7548c0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
7548c0
Message-Id: <27effeb5e12252982411796bd72e078d3afe49cb.1602172344.git.jdenemar@redhat.com>
7548c0
Reviewed-by: Ján Tomko <jtomko@redhat.com>
7548c0
---
7548c0
 src/cpu_map/x86_features.xml                                | 6 ++++++
7548c0
 tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml       | 2 +-
7548c0
 tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml          | 1 +
7548c0
 .../cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 1 +
7548c0
 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml  | 1 +
7548c0
 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml   | 1 +
7548c0
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml        | 1 +
7548c0
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml           | 1 +
7548c0
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml            | 1 +
7548c0
 .../x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml        | 1 +
7548c0
 .../x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml           | 1 +
7548c0
 .../x86_64-cpuid-Hygon-C86-7185-32-core-host.xml            | 1 +
7548c0
 .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml      | 1 +
7548c0
 .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml         | 1 +
7548c0
 .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml          | 1 +
7548c0
 15 files changed, 20 insertions(+), 1 deletion(-)
7548c0
7548c0
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml
7548c0
index 364e45fb32..5265b2989b 100644
7548c0
--- a/src/cpu_map/x86_features.xml
7548c0
+++ b/src/cpu_map/x86_features.xml
7548c0
@@ -486,12 +486,18 @@
7548c0
   <feature name='clzero'>
7548c0
     <cpuid eax_in='0x80000008' ebx='0x00000001'/>
7548c0
   </feature>
7548c0
+  <feature name='xsaveerptr'>
7548c0
+    <cpuid eax_in='0x80000008' ebx='0x00000004'/>
7548c0
+  </feature>
7548c0
   <feature name='wbnoinvd'>
7548c0
     <cpuid eax_in='0x80000008' ebx='0x00000200'/>
7548c0
   </feature>
7548c0
   <feature name='ibpb'>
7548c0
     <cpuid eax_in='0x80000008' ebx='0x00001000'/>
7548c0
   </feature>
7548c0
+  <feature name='amd-stibp'>
7548c0
+    <cpuid eax_in='0x80000008' ebx='0x00008000'/>
7548c0
+  </feature>
7548c0
   <feature name='amd-ssbd'>
7548c0
     <cpuid eax_in='0x80000008' ebx='0x01000000'/>
7548c0
   </feature>
7548c0
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml
7548c0
index 2d7f83c80f..1d91c3efa8 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml
7548c0
@@ -6,6 +6,6 @@
7548c0
   <cpuid eax_in='0x00000007' ecx_in='0x01' eax='0x00000020' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
7548c0
-  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01001000' ecx='0x00000000' edx='0x00000000'/>
7548c0
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01009000' ecx='0x00000000' edx='0x00000000'/>
7548c0
   <msr index='0x10a' edx='0x00000000' eax='0x000001eb'/>
7548c0
 </cpudata>
7548c0
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
7548c0
index fb319d547c..c89e0e5350 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
7548c0
@@ -10,6 +10,7 @@
7548c0
   <feature policy='require' name='md-clear'/>
7548c0
   <feature policy='require' name='xsaves'/>
7548c0
   <feature policy='require' name='ibpb'/>
7548c0
+  <feature policy='require' name='amd-stibp'/>
7548c0
   <feature policy='require' name='amd-ssbd'/>
7548c0
   <feature policy='require' name='tsx-ctrl'/>
7548c0
 </cpu>
7548c0
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
7548c0
index 747d725acf..c26c9c7be3 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml
7548c0
@@ -4,4 +4,5 @@
7548c0
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
7548c0
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
7548c0
 </cpudata>
7548c0
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
7548c0
index b75196aac5..612e571609 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
7548c0
@@ -14,4 +14,5 @@
7548c0
   <feature policy='require' name='perfctr_nb'/>
7548c0
   <feature policy='require' name='invtsc'/>
7548c0
   <feature policy='require' name='clzero'/>
7548c0
+  <feature policy='require' name='xsaveerptr'/>
7548c0
 </cpu>
7548c0
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
7548c0
index fd84b526db..7498d924e2 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
7548c0
@@ -15,4 +15,5 @@
7548c0
   <feature name='perfctr_nb'/>
7548c0
   <feature name='invtsc'/>
7548c0
   <feature name='clzero'/>
7548c0
+  <feature name='xsaveerptr'/>
7548c0
 </cpu>
7548c0
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
7548c0
index af43fca98d..a7f4fa3f01 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
7548c0
@@ -4,4 +4,5 @@
7548c0
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x08000000'/>
7548c0
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
7548c0
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
7548c0
 </cpudata>
7548c0
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
7548c0
index 5044c8cc35..96fdea306f 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
7548c0
@@ -14,5 +14,6 @@
7548c0
   <feature policy='require' name='perfctr_nb'/>
7548c0
   <feature policy='require' name='invtsc'/>
7548c0
   <feature policy='require' name='clzero'/>
7548c0
+  <feature policy='require' name='xsaveerptr'/>
7548c0
   <feature policy='disable' name='rdtscp'/>
7548c0
 </cpu>
7548c0
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
7548c0
index d7d5ce88d9..4fff74f3aa 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
7548c0
@@ -15,4 +15,5 @@
7548c0
   <feature name='perfctr_nb'/>
7548c0
   <feature name='invtsc'/>
7548c0
   <feature name='clzero'/>
7548c0
+  <feature name='xsaveerptr'/>
7548c0
 </cpu>
7548c0
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
7548c0
index 747d725acf..c26c9c7be3 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml
7548c0
@@ -4,4 +4,5 @@
7548c0
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
7548c0
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
7548c0
 </cpudata>
7548c0
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
7548c0
index 75c71233c6..844b8b9d4f 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml
7548c0
@@ -14,4 +14,5 @@
7548c0
   <feature policy='require' name='perfctr_nb'/>
7548c0
   <feature policy='require' name='invtsc'/>
7548c0
   <feature policy='require' name='clzero'/>
7548c0
+  <feature policy='require' name='xsaveerptr'/>
7548c0
 </cpu>
7548c0
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
7548c0
index 82f28067c4..3d1b143eba 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml
7548c0
@@ -15,4 +15,5 @@
7548c0
   <feature name='perfctr_nb'/>
7548c0
   <feature name='invtsc'/>
7548c0
   <feature name='clzero'/>
7548c0
+  <feature name='xsaveerptr'/>
7548c0
 </cpu>
7548c0
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
7548c0
index b085050618..0358ecf478 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
7548c0
@@ -5,4 +5,5 @@
7548c0
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c23008' edx='0x00000000'/>
7548c0
   <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
7548c0
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/>
7548c0
 </cpudata>
7548c0
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
7548c0
index b75196aac5..612e571609 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
7548c0
@@ -14,4 +14,5 @@
7548c0
   <feature policy='require' name='perfctr_nb'/>
7548c0
   <feature policy='require' name='invtsc'/>
7548c0
   <feature policy='require' name='clzero'/>
7548c0
+  <feature policy='require' name='xsaveerptr'/>
7548c0
 </cpu>
7548c0
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
7548c0
index fd84b526db..7498d924e2 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
7548c0
@@ -15,4 +15,5 @@
7548c0
   <feature name='perfctr_nb'/>
7548c0
   <feature name='invtsc'/>
7548c0
   <feature name='clzero'/>
7548c0
+  <feature name='xsaveerptr'/>
7548c0
 </cpu>
7548c0
-- 
7548c0
2.29.2
7548c0