Pablo Greco 40546a
From bd665085c2cd890f2249042f135b7a1735932d1b Mon Sep 17 00:00:00 2001
Pablo Greco 40546a
Message-Id: <bd665085c2cd890f2249042f135b7a1735932d1b@dist-git>
Pablo Greco 40546a
From: Jiri Denemark <jdenemar@redhat.com>
Pablo Greco 40546a
Date: Fri, 21 Jun 2019 09:24:48 +0200
Pablo Greco 40546a
Subject: [PATCH] cpu_map: Add support for arch-capabilities feature
Pablo Greco 40546a
MIME-Version: 1.0
Pablo Greco 40546a
Content-Type: text/plain; charset=UTF-8
Pablo Greco 40546a
Content-Transfer-Encoding: 8bit
Pablo Greco 40546a
Pablo Greco 40546a
The feature was added to QEMU in 3.1.0 and it is currently blocking
Pablo Greco 40546a
migration, which is expected to change in the future. Luckily 3.1.0 is
Pablo Greco 40546a
new enough to give us migratability hints on each feature via
Pablo Greco 40546a
query-cpu-model-expension, which means we don't need to use the
Pablo Greco 40546a
"migratable" attribute on the CPU map XML.
Pablo Greco 40546a
Pablo Greco 40546a
The kernel calls this feature arch_capabilities and RHEL/CentOS 7.* use
Pablo Greco 40546a
arch-facilities. Apparently some CPU test files were gathered with the
Pablo Greco 40546a
RHEL version of QEMU. Let's update the test files to avoid possible
Pablo Greco 40546a
confusion about the correct naming.
Pablo Greco 40546a
Pablo Greco 40546a
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Pablo Greco 40546a
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Pablo Greco 40546a
(cherry picked from commit 511df17aec36385320dbcc088ba85968537d1d42)
Pablo Greco 40546a
Pablo Greco 40546a
https://bugzilla.redhat.com/show_bug.cgi?id=1693433
Pablo Greco 40546a
Pablo Greco 40546a
Conflicts:
Pablo Greco 40546a
	src/cpu_map/x86_features.xml
Pablo Greco 40546a
            - cpu_map split was not backported
Pablo Greco 40546a
Pablo Greco 40546a
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Pablo Greco 40546a
Message-Id: <fc8d72f3a2191ef85b537943aa1cc844f50b038d.1561068591.git.jdenemar@redhat.com>
Pablo Greco 40546a
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Pablo Greco 40546a
---
Pablo Greco 40546a
 src/cpu/cpu_map.xml                                        | 3 +++
Pablo Greco 40546a
 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json | 2 +-
Pablo Greco 40546a
 tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3.json        | 2 +-
Pablo Greco 40546a
 tests/cputestdata/x86_64-cpuid-Xeon-E5-2623-v4.json        | 2 +-
Pablo Greco 40546a
 tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115.json         | 2 +-
Pablo Greco 40546a
 5 files changed, 7 insertions(+), 4 deletions(-)
Pablo Greco 40546a
Pablo Greco 40546a
diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml
Pablo Greco 40546a
index ceee0ae489..a9f284fbbe 100644
Pablo Greco 40546a
--- a/src/cpu/cpu_map.xml
Pablo Greco 40546a
+++ b/src/cpu/cpu_map.xml
Pablo Greco 40546a
@@ -337,6 +337,9 @@
Pablo Greco 40546a
     <feature name='stibp'>
Pablo Greco 40546a
       <cpuid eax_in='0x07' ecx_in='0x00' edx='0x08000000'/>
Pablo Greco 40546a
     </feature>
Pablo Greco 40546a
+    <feature name='arch-capabilities'> 
Pablo Greco 40546a
+      <cpuid eax_in='0x07' ecx_in='0x00' edx='0x20000000'/>
Pablo Greco 40546a
+    </feature>
Pablo Greco 40546a
     <feature name='ssbd'>
Pablo Greco 40546a
       <cpuid eax_in='0x07' ecx_in='0x00' edx='0x80000000'/>
Pablo Greco 40546a
     </feature>
Pablo Greco 40546a
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json
Pablo Greco 40546a
index 94a60fcc8f..1f53bb8bf3 100644
Pablo Greco 40546a
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json
Pablo Greco 40546a
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json
Pablo Greco 40546a
@@ -232,7 +232,7 @@
Pablo Greco 40546a
         "avx512vbmi": false,
Pablo Greco 40546a
         "kvm-asyncpf": true,
Pablo Greco 40546a
         "spec-ctrl": false,
Pablo Greco 40546a
-        "arch-facilities": false,
Pablo Greco 40546a
+        "arch-capabilities": false,
Pablo Greco 40546a
         "model": 1,
Pablo Greco 40546a
         "node-id": -1
Pablo Greco 40546a
       }
Pablo Greco 40546a
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3.json b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3.json
Pablo Greco 40546a
index 10c5434263..6bdaf6e83a 100644
Pablo Greco 40546a
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3.json
Pablo Greco 40546a
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3.json
Pablo Greco 40546a
@@ -232,7 +232,7 @@
Pablo Greco 40546a
         "avx512vbmi": false,
Pablo Greco 40546a
         "kvm-asyncpf": true,
Pablo Greco 40546a
         "spec-ctrl": true,
Pablo Greco 40546a
-        "arch-facilities": false,
Pablo Greco 40546a
+        "arch-capabilities": false,
Pablo Greco 40546a
         "model": 63,
Pablo Greco 40546a
         "node-id": -1
Pablo Greco 40546a
       }
Pablo Greco 40546a
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2623-v4.json b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2623-v4.json
Pablo Greco 40546a
index 0506dec0a7..2c6be20768 100644
Pablo Greco 40546a
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E5-2623-v4.json
Pablo Greco 40546a
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E5-2623-v4.json
Pablo Greco 40546a
@@ -232,7 +232,7 @@
Pablo Greco 40546a
         "avx512vbmi": false,
Pablo Greco 40546a
         "kvm-asyncpf": true,
Pablo Greco 40546a
         "spec-ctrl": true,
Pablo Greco 40546a
-        "arch-facilities": false,
Pablo Greco 40546a
+        "arch-capabilities": false,
Pablo Greco 40546a
         "model": 79,
Pablo Greco 40546a
         "node-id": -1
Pablo Greco 40546a
       }
Pablo Greco 40546a
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115.json b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115.json
Pablo Greco 40546a
index 79f3580219..79b47a56fb 100644
Pablo Greco 40546a
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115.json
Pablo Greco 40546a
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115.json
Pablo Greco 40546a
@@ -232,7 +232,7 @@
Pablo Greco 40546a
         "avx512vbmi": false,
Pablo Greco 40546a
         "kvm-asyncpf": true,
Pablo Greco 40546a
         "spec-ctrl": true,
Pablo Greco 40546a
-        "arch-facilities": false,
Pablo Greco 40546a
+        "arch-capabilities": false,
Pablo Greco 40546a
         "model": 85,
Pablo Greco 40546a
         "node-id": -1
Pablo Greco 40546a
       }
Pablo Greco 40546a
-- 
Pablo Greco 40546a
2.22.0
Pablo Greco 40546a