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

[virtio-win][viomem] guest BSOD or stuck if try to resize the mem to a smaller value than the original setting value

    • virtio-win-prewhql-0.1-266
    • None
    • Important
    • CustomerScenariosInitiative
    • rhel-sst-virtualization-windows
    • ssg_virtualization
    • 9
    • 13
    • 3
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • x86_64
    • Windows
    • None

      Description of problem:

      guest BSOD if try to resize the mem to a smaller value then the than the original setting value

      Version-Release number of selected component (if applicable):

      kernel-5.14.0-437.el9.x86_64
      qemu-kvm-8.2.0-11.el9_4.x86_64
      edk2-ovmf-20240214-2.el9.noarch
      seabios-bin-1.16.3-2.el9.noarch
      virtio-win-prewhql-255.iso

      How reproducible:
      100%

      Steps to Reproduce:
      1. Boot a win2025(ovmf) guest with a viomem device

      /usr/libexec/qemu-kvm \
      -name 'avocado-vt-vm3' \
      -machine q35 \
      -nodefaults \
      -vga std \
      -device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x3 \
      -device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x3.0x1 \
      -device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x3.0x2 \
      -device pcie-root-port,port=0x13,chassis=4,id=pci.4,bus=pcie.0,addr=0x3.0x3 \
      -device pcie-root-port,port=0x14,chassis=5,id=pci.5,bus=pcie.0,addr=0x3.0x4 \
      -device pcie-root-port,port=0x15,chassis=6,id=pci.6,bus=pcie.0,addr=0x3.0x5 \
      -device pcie-root-port,port=0x16,chassis=7,id=pci.7,bus=pcie.0,addr=0x3.0x6 \
      -device pcie-root-port,port=0x17,chassis=8,id=pci.8,bus=pcie.0,addr=0x3.0x7 \
      -device virtio-net-pci,mac=9a:36:83:b6:3d:05,id=idJVpmsF,netdev=id23ZUK6,bus=pci.3 \
      -netdev tap,id=id23ZUK6,vhost=on \
      -blockdev node-name=file_stg2,driver=file,cache.direct=on,cache.no-flush=off,filename=win2025.qcow2,aio=threads \
      -blockdev node-name=drive_stg2,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_stg2 \
      -device virtio-blk-pci,id=stg2,drive=drive_stg2 \
      -smp 8 \
      -cpu host \
      -drive id=drive_cd1,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/kvm_autotest_root/iso/ISO/Win2025/windows_server_2025_x64_dvd.iso \
      -device ide-cd,id=cd2,drive=drive_cd1,bus=ide.0,unit=0 \
      -cdrom /home/kvm_autotest_root/iso/windows/virtio-win-prewhql-0.1-255.iso \
      -device piix3-usb-uhci,id=usb -device usb-tablet,id=input0 \
      -vnc :10 \
      -rtc base=localtime,clock=host,driftfix=slew \
      -boot order=cdn,once=c,menu=off,strict=off \
      -enable-kvm \
      -qmp tcp:0:1231,server,nowait \
      -monitor stdio \
      -m 4G,maxmem=80G,slots=20 \
      -object memory-backend-ram,id=vmem0,size=8G \
      -device virtio-mem-pci,id=vm0,memdev=vmem0,node=0,requested-size=3G,bus=pci.4 \
      -drive file=/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd,if=pflash,format=raw,unit=0,readonly=on \
      -drive file=/home/OVMF_VARS.fd,if=pflash,format=raw,unit=1 \
      \

      2. Shrink virtio-mem device to 1G
      HMP
      (qemu) qom-set vm0 requested-size 1G

      Actual results:
      Guest hit BSOD.

      Expected results:
      Guest works normally.

      Other information:
      1. hit this issue with win11(24H2) and win2025(ovmf)
      2. for win10-64(PC)/win2019(seabios), sometimes the total mem value is not accurate

              mkedzier1 Marek Kedzierski
              rhn-support-menli Menghuan Li
              virt-maint virt-maint
              Menghuan Li Menghuan Li
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

                Created:
                Updated: