]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_map: Remove intel-pt from x86 CPU models
authorJiri Denemark <jdenemar@redhat.com>
Fri, 22 Jan 2021 14:04:42 +0000 (15:04 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 26 Jan 2021 14:44:50 +0000 (15:44 +0100)
As explained in QEMU commit 4c257911dcc7c4189768e9651755c849ce9db4e8
intel-pt features should never be included in the CPU models as it was
not supported by KVM back then and even once it started to be supported,
users have to enable it by passing pt_mode=1 parameter to kvm_intel
module. The Icelake-* CPU models with intel-pt included were added to
QEMU 3.1.0 and removed right in the following 4.0.0 release (and even in
3.1.1 maintenance release).

In libvirt 6.10.0 I introduced 'removed' attribute for features included
in our CPU model definitions which we can use to drop intel-pt from
Icelake-* CPU models. Back then I explained we can safely do so only for
features which could never be enabled, which is not the case of intel-pt.

Theoretically, it could be possible to create an environment in which
QEMU would enable intel-pt without asking for it explicitly: it would
need to use a new enough kernel (not available at the time of QEMU
3.1.0) and pt_mode KVM parameter in combination with QEMU 3.1.0 running
a domain with q35 machine type and all that on a CPU which didn't really
exist at that time.

Migrating such domain to a host with newer SW stack including libvirt
with this patch applied would result in incompatible guest ABI (the
virtual CPU would lose intel-pt). However, QEMU changed its CPU models
unconditionally and thus migration would not work even without this
patch. That said, it is safe to follow QEMU and remove the feature from
Icelake-* CPU models in our cpu_map.

https://bugzilla.redhat.com/show_bug.cgi?id=1853972

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
src/cpu_map/x86_Icelake-Client-noTSX.xml
src/cpu_map/x86_Icelake-Client.xml
src/cpu_map/x86_Icelake-Server-noTSX.xml
src/cpu_map/x86_Icelake-Server.xml
tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
tests/qemuxml2argvdata/cpu-Icelake-Server-pconfig.x86_64-3.1.0.args
tests/qemuxml2argvdata/cpu-Icelake-Server-pconfig.x86_64-latest.args

index 65e648ae21ecd73c40cfdb1e5c70660496ce280e..217adba4f27a8594ecd05150b5ac8a3466663f2e 100644 (file)
@@ -30,7 +30,7 @@
     <feature name='fsgsbase'/>
     <feature name='fxsr'/>
     <feature name='gfni'/>
-    <feature name='intel-pt'/>
+    <feature name='intel-pt' removed='yes'/>
     <feature name='invpcid'/>
     <feature name='lahf_lm'/>
     <feature name='lm'/>
index 5cf32e91fad459e88047ba63cb4605d4e78a032d..b725227f464ecec2218fe1eb71647b5dcefe60a8 100644 (file)
@@ -31,7 +31,7 @@
     <feature name='fxsr'/>
     <feature name='gfni'/>
     <feature name='hle'/>
-    <feature name='intel-pt'/>
+    <feature name='intel-pt' removed='yes'/>
     <feature name='invpcid'/>
     <feature name='lahf_lm'/>
     <feature name='lm'/>
index 34a0f7c18c59870a6094b169eea1ae3a137de30a..7c9c32c97760cd64eb41799a5ba44eb72c8440e6 100644 (file)
@@ -37,7 +37,7 @@
     <feature name='fsgsbase'/>
     <feature name='fxsr'/>
     <feature name='gfni'/>
-    <feature name='intel-pt'/>
+    <feature name='intel-pt' removed='yes'/>
     <feature name='invpcid'/>
     <feature name='la57'/>
     <feature name='lahf_lm'/>
index 1ee4ea9cd4ada1db24f3564ad50e357c50839185..b4685bead05d83018b55f61726b74e7eaf87818b 100644 (file)
@@ -38,7 +38,7 @@
     <feature name='fxsr'/>
     <feature name='gfni'/>
     <feature name='hle'/>
-    <feature name='intel-pt'/>
+    <feature name='intel-pt' removed='yes'/>
     <feature name='invpcid'/>
     <feature name='la57'/>
     <feature name='lahf_lm'/>
index 3a71b28cfb4e21082532d9de8942a3e35d8d1926..7fcd20d26d2bfc5f6e7660a7fe1beb21de49ce84 100644 (file)
@@ -21,6 +21,7 @@
   <feature policy='require' name='tsc_adjust'/>
   <feature policy='require' name='cmt'/>
   <feature policy='require' name='avx512ifma'/>
+  <feature policy='require' name='intel-pt'/>
   <feature policy='require' name='sha-ni'/>
   <feature policy='require' name='ospke'/>
   <feature policy='require' name='rdpid'/>
index 1582de0422d57d3b0a0940e83e21dfba5023db40..07e8f8bc24dc528f2483d7816b3c678c9547c997 100644 (file)
@@ -22,6 +22,7 @@
   <feature name='tsc_adjust'/>
   <feature name='cmt'/>
   <feature name='avx512ifma'/>
+  <feature name='intel-pt'/>
   <feature name='sha-ni'/>
   <feature name='ospke'/>
   <feature name='rdpid'/>
index 96d43062385a5c97f4d312bbdbf86b22caf1c3dc..b69bfe0f0fa20583d6c2e95a325bf222bc874bf4 100644 (file)
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
 -object secret,id=masterKey0,format=raw,\
 file=/tmp/lib/domain--1-test/master-key.aes \
 -machine pc-i440fx-3.1,accel=kvm,usb=off,dump-guest-core=off \
--cpu Icelake-Server,pconfig=off \
+-cpu Icelake-Server,pconfig=off,intel-pt=off \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
index a512623af6333b6ebef942c7a8a2c65f68e1c9df..64f223bee342f71fa6a4dc72bb3fcf395ca2b7c2 100644 (file)
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
 -object secret,id=masterKey0,format=raw,\
 file=/tmp/lib/domain--1-test/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off,memory-backend=pc.ram \
--cpu Icelake-Server \
+-cpu Icelake-Server,intel-pt=off \
 -m 214 \
 -object memory-backend-ram,id=pc.ram,size=224395264 \
 -overcommit mem-lock=off \