This series fixes a migration regression introduced in 9.10.0 release
which added support for a bunch of vmx-* CPU features. Domains with vmx
feature enabled started by libvirt 9.9.0 or older cannot be migrated to
current releases 9.10.0 and newer.
After this series migration works again with libvirt 9.9.0 and older in
both directions. Migration from the affected releases to the fixed
version works as well, but the other direction remains broken unless the
fix is backported.
See patches 1/22 and 4/22 for more details about the issue and the fix.
Fixes:
https://gitlab.com/libvirt/libvirt/-/issues/568
Jiri Denemark (22):
cpu: x86: Add support for adding features to existing CPU models
qemu: domain: Check arch in qemuDomainMakeCPUMigratable
conf: cpu: Introduce virCPUDefListFeatures
qemu: domain: Drop added features from migratable CPU
cpu_map: Do not ignore VMX features in sync_qemu_models script
Add vmx-* features to Broadwell*
Add vmx-* features to Cascadelake*
Add vmx-* features to Conroe
Add vmx-* features to Cooperlake
Add vmx-* features to core{,2}duo
Add vmx-* features to Haswell*
Add vmx-* features to Icelake*
Add vmx-* features to IvyBridge*
Add vmx-* features to kvm*
Add vmx-* features to Nehalem*
Add vmx-* features to Penryn
Add vmx-* features to SandyBridge*
Add vmx-* features to SapphireRapids
Add vmx-* features to Skylake*
Add vmx-* features to Snowridge
Add vmx-* features to Westmere*
NEWS: Document the fix for migration or vmx enabled domains
NEWS.rst | 12 ++
src/conf/cpu_conf.c | 24 ++++
src/conf/cpu_conf.h | 3 +
src/cpu/cpu_x86.c | 69 ++++++++++-
src/cpu/cpu_x86.h | 3 +
src/cpu_map/sync_qemu_models_i386.py | 114 +++++++++++++++++-
src/cpu_map/x86_Broadwell-IBRS.xml | 75 ++++++++++++
src/cpu_map/x86_Broadwell-noTSX-IBRS.xml | 75 ++++++++++++
src/cpu_map/x86_Broadwell-noTSX.xml | 75 ++++++++++++
src/cpu_map/x86_Broadwell.xml | 75 ++++++++++++
src/cpu_map/x86_Cascadelake-Server-noTSX.xml | 76 ++++++++++++
src/cpu_map/x86_Cascadelake-Server.xml | 74 ++++++++++++
src/cpu_map/x86_Conroe.xml | 26 ++++
src/cpu_map/x86_Cooperlake.xml | 76 ++++++++++++
src/cpu_map/x86_Haswell-IBRS.xml | 73 +++++++++++
src/cpu_map/x86_Haswell-noTSX-IBRS.xml | 73 +++++++++++
src/cpu_map/x86_Haswell-noTSX.xml | 73 +++++++++++
src/cpu_map/x86_Haswell.xml | 73 +++++++++++
src/cpu_map/x86_Icelake-Server-noTSX.xml | 77 ++++++++++++
src/cpu_map/x86_Icelake-Server.xml | 72 +++++++++++
src/cpu_map/x86_IvyBridge-IBRS.xml | 67 ++++++++++
src/cpu_map/x86_IvyBridge.xml | 67 ++++++++++
src/cpu_map/x86_Nehalem-IBRS.xml | 61 ++++++++++
src/cpu_map/x86_Nehalem.xml | 61 ++++++++++
src/cpu_map/x86_Penryn.xml | 29 +++++
src/cpu_map/x86_SandyBridge-IBRS.xml | 63 ++++++++++
src/cpu_map/x86_SandyBridge.xml | 63 ++++++++++
src/cpu_map/x86_SapphireRapids.xml | 77 ++++++++++++
src/cpu_map/x86_Skylake-Client-IBRS.xml | 71 +++++++++++
src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml | 72 +++++++++++
src/cpu_map/x86_Skylake-Client.xml | 71 +++++++++++
src/cpu_map/x86_Skylake-Server-IBRS.xml | 74 ++++++++++++
src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml | 76 ++++++++++++
src/cpu_map/x86_Skylake-Server.xml | 74 ++++++++++++
src/cpu_map/x86_Snowridge.xml | 76 ++++++++++++
src/cpu_map/x86_Westmere-IBRS.xml | 63 ++++++++++
src/cpu_map/x86_Westmere.xml | 63 ++++++++++
src/cpu_map/x86_core2duo.xml | 26 ++++
src/cpu_map/x86_coreduo.xml | 18 +++
src/cpu_map/x86_kvm32.xml | 18 +++
src/cpu_map/x86_kvm64.xml | 20 +++
src/libvirt_private.syms | 2 +
src/qemu/qemu_domain.c | 60 ++++++++-
src/qemu/qemu_domain.h | 4 +-
src/qemu/qemu_migration_cookie.c | 5 +-
45 files changed, 2487 insertions(+), 12 deletions(-)
--
2.44.0