[Libguestfs] [v2v PATCH 0/9] ensure x86-64-v2 uarch level for RHEL-9.0+ guests

Laszlo Ersek
2022-04-20T16:23:24Z

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
--
2.19.1.3.g30247aa5d201