Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=2076013
We don't specify a VCPU model in the destination domain description if
the source description doesn't specify one. This is a problem for x86-64
RHEL-9.0+ guests, when using the QEMU or libvirt output modules. Those
outputs default to the "qemu64" VCPU model in the absence of an explicit
VCPU model specification, and "qemu64" does not satisfy the
"x86-64-v2"
microarchitecture level, which is required by RHEL-9.0+ guests. As a
result, these guests crash during boot, after conversion.
The series recognizes guests that are unable to boot on the default QEMU
VCPU model, and specifies host CPU passthrough for them in the QEMU and
libvirt output modules.
Testing: <
https://bugzilla.redhat.com/show_bug.cgi?id=2076013#c18>.
Thanks,
Laszlo
Laszlo Ersek (9):
types: introduce the "gcaps_default_cpu" field
create_libvirt_xml: simplify match on (s_cpu_vendor, s_cpu_model)
create_libvirt_xml: normalize match on (s_cpu_vendor, s_cpu_model)
create_libvirt_xml: eliminate childless <cpu match="minimum"/> element
create_libvirt_xml: restrict 'match="minimum"' <cpu> attribute
production
create_libvirt_xml: honor "gcaps_default_cpu"
output_qemu: reflect source VCPU model to the QEMU command line
output_qemu: honor "gcaps_default_cpu"
convert_linux: set "gcaps_default_cpu = false" for x86_64 RHEL-9.0+
guests
convert/convert_linux.ml | 9 ++++++
convert/convert_windows.ml | 1 +
lib/types.ml | 3 ++
lib/types.mli | 14 +++++++++
output/create_libvirt_xml.ml | 31 +++++++++++---------
output/output_qemu.ml | 7 +++++
6 files changed, 51 insertions(+), 14 deletions(-)
base-commit: 8643970f9791b1c90dfd6a2dd1abfc9afef1fb52