Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-138689

Hyperv feature validation is too tight for i440fx machine type

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • rhel-9.8
    • rhel-9.6, rhel-9.7
    • libvirt
    • None
    • Yes
    • Moderate
    • rhel-virt-core-libvirt-1
    • 5
    • False
    • False
    • Hide

      None

      Show
      None
    • Yes
    • None
    • Unspecified Release Note Type - Unknown
    • Unspecified
    • Unspecified
    • Unspecified
    • x86_64
    • None

      What were you trying to do that didn't work?

      With libvirt-11.9.0 validation of hyperv features was introduced to libvirt. But in case of some very old machine types (e.g. pc-i440fx-rhel7.6.0) these checks do not reflect QEMU's behavior. Namely: synic does not require vpindex nor does stimer. It's possible to start QEMU with synic and stimer and without vpindex:

       

      /usr/libexec/qemu-kvm -name guest=QEMUGuest1,debug-threads=on -S -machine pc-i440fx-rhel7.6.0,usb=off,dump-guest-core=off,acpi=on -accel kvm -cpu qemu64,hv-time=on,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x1fff,hv-synic=on,hv-stimer=on,hv-crash
      qemu-kvm: warning: Machine type 'pc-i440fx-rhel7.6.0' is deprecated: machines from the previous RHEL major release are subject to deletion in the next RHEL major release
      qemu-kvm: warning: CPU model qemu64-x86_64-cpu is deprecated – use at least 'Nehalem' / 'Opteron_G4', or 'host' / 'max'
      VNC server running on ::1:5900

      This breaks migration from older libvirt to newer.

      What is the impact of this issue to you?

      Please provide the package NVR for which the bug is seen:

      libvirt-daemon-driver-qemu-11.10.0-2.el9

      How reproducible is this bug?:

      always

      Steps to reproduce

      1. Create a domain with the following set of hyperv features:

      <hyperv>
        <relaxed state='on'/>
        <vapic state='on'/>
        <spinlocks state='on' retries='8191'/>
        <synic state='on'/>
        <stimer state='on'/>
      </hyperv>

      1. Migrate it to a host with affected libvirt

      Expected results

      Migration succeeds

      Actual results

      Migration fails

       

      BTW: this is a downstream 'clone' of an upstream issue reported here:

      https://gitlab.com/libvirt/libvirt/-/issues/837

              mprivozn@redhat.com Michal Privoznik
              mprivozn@redhat.com Michal Privoznik
              virt-maint virt-maint
              virt-bugs virt-bugs
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: