]> git.ipfire.org Git - thirdparty/libvirt.git/commit
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)
commit4901314d0dd9904225b7567fc282793c039f2efa
treeabaa2789aa74421755b4697dc0187775589a9eb9
parentd5283b7be2ee40a5823c63829658a45a043c3b96
cpu_map: Remove intel-pt from x86 CPU models

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