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

[aarch64] First boot of Virtual Machine sometimes has 507x510 resolution on the video device, crashing the firmware [qemu]

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • rhel-9.4
    • qemu-kvm / Graphics
    • No
    • Moderate
    • rhel-sst-virtualization
    • ssg_virtualization
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • None
    • None
    • aarch64
    • None

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

      Booting the VM for the first time (only the first time) makes it hang, as the firmware refuses to run on a resolution lower than EFI spec mandates

       

      GopNativeResolution: #0: 507x510
      ...
      GraphicsConsole video resolution 507 x 510 
      ASSERT [GraphicsConsoleDxe] /builddir/build/BUILD/edk2-8736b8fdca/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c(267): (MaxColumns >= 80) && (MaxRows >= 25)

       

      Resettting the VM makes the problem go away, its only on first boot after VM creation, and not always.

      Please provide the package NVR for which bug is seen:

       

      edk2-aarch64-20231122-6.el9.noarch
      qemu-kvm-8.2.0-11.el9_4.3.aarch64
      

       

      How reproducible:

       

      Never in our labs, only on customer site.

       

      Steps to reproduce:

      On customer setup, the details are potentially irrelevant as it also reproduces via cockpit-machines:

       

      # virt-install --connect qemu:///system --quiet --os-variant rhel9.4 --memory 8192 --name myvm --wait -1 --disk size=16,format=qcow2 --graphics vnc,listen=127.0.0.1 --print-xml=1 > /tmp/myvm.xml 
      
      # virsh --connect qemu:///system define /tmp/myvm.xml  
      
      # virsh --connect qemu:///system dumpxml myvm | grep -w mac
      <mac address='52:54:00:00:00:00'/>  
      
      # virt-xml -c qemu:///system myvm --edit mac=52:54:00:00:00:00 --network mac=52:54:00:00:00:00,type=bridge,source=bridge0,model=virtio, Domain 'myvm' defined successfully. 
      
      # virt-install --debug --connect qemu:///system --quiet --os-variant rhel9.4 --reinstall myvm --wait -1 --noautoconsole --cdrom /tmp/rhel-9.4-aarch64-boot.iso

      Expected results

      The VM boots

      Actual results

      The VM is stuck on that ASSERT on first boot.

      There is no resolution set in the qemu-kvm command line for the virtio-gpu, nor in the libvirt XML.

      After some investigation, I found that the resolution may be saved in some Platform Config option saved as EFI VAR somewhere. But we have double checked that:

      1. The system disk is empty, no EFI vars set there
      2. The RHEL 9.4 boot ISO also has nothing
      3. The NVRAM VARS is also the default, there are no resolution settings there.
      4. The firmware logs don't indicate it loading any config, it seems to just read that incorrect resolution from the virtio-gpu, but then working after a reset is weird.
      5. It is always 507x510, so its apparently not some random garbage that is read.
      6. qemu-kvm virtio-gpu device is created with the default resolution and the device properties look correct on the same run the assert is hit
      # virsh qemu-monitor-command myvm --pretty '{"execute": "device-list-properties", "arguments": {"typename": "virtio-gpu-pci"}}' | egrep 'xres|yres' -E1
            "default-value": 800,
            "name": "yres",
            "type": "uint32"
      --
            "default-value": 1280,
            "name": "xres",
            "type": "uint32"
      
      # virsh qemu-monitor-command myvm --pretty '{"execute": "qom-get", "arguments": { "path": "/machine/peripheral/video0", "property" : "xres" }}'
      {
        "return": 1280,
        "id": "libvirt-144353"
      }
      
      # virsh qemu-monitor-command myvm --pretty '{"execute": "qom-get", "arguments": { "path": "/machine/peripheral/video0", "property" : "yres" }}'
      {
        "return": 800,
        "id": "libvirt-144360"
      } 

       

              mlureau Marc-Andre Lureau
              rhn-support-gveitmic Germano Veit Michel
              virt-maint virt-maint
              Dan Zheng Dan Zheng
              Votes:
              0 Vote for this issue
              Watchers:
              19 Start watching this issue

                Created:
                Updated: