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

BSOD occur when do migration from RHEL9.4.0 host to RHEL8.10.0 host for windows 11/2022 vm

    • None
    • Important
    • rhel-sst-virtualization
    • ssg_virtualization
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • x86_64
    • None

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

      • When do migration test from RHEL9.4 to RHEL8.10, hit BSOD on Win11 and Win2022 guest.

      Please provide the package NVR for which bug is seen:

      RHEL9.4.0 Host:

      • kernel-5.14.0-417.el9.x86_64
      • qemu-kvm-8.2.0-3.el9.x86_64
      • edk2-ovmf-20231122-2.el9.noarch

      RHEL8.10.0 Host:

      • kernel-4.18.0-538.el8.x86_64
      • qemu-kvm-6.2.0-46.module+el8.10.0+21144+ad14f781.x86_64
      • edk2-ovmf-20220126gitbb1bba3d77-8.el8.noarch

      How reproducible:

      100%

      Steps to reproduce

      1. On RHEL9.4 host, boot a windows vm(Win11 or Win2022) up:
        • # cat ide_stable_guest_abi.sh 
          /usr/libexec/qemu-kvm \
          -name 'avocado-vt-vm1'  \
          -sandbox on  \
          -blockdev '{"node-name": "file_ovmf_code", "driver": "file", "filename": "/usr/share/OVMF/OVMF_CODE.secboot.fd", "auto-read-only": true, "discard": "unmap"}' \
          -blockdev '{"node-name": "drive_ovmf_code", "driver": "raw", "read-only": true, "file": "file_ovmf_code"}' \
          -blockdev '{"node-name": "file_ovmf_vars", "driver": "file", "filename": "/root/avocado/data/avocado-vt/avocado-vt-vm1_win11-64-virtio-scsi_avocado-vt-vm1_qcow2_filesystem_VARS.fd", "auto-read-only": true, "discard": "unmap"}' \
          -blockdev '{"node-name": "drive_ovmf_vars", "driver": "raw", "read-only": false, "file": "file_ovmf_vars"}' \
          -machine pc-q35-rhel8.6.0,memory-backend=mem-machine_mem,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars \
          -device '{"id": "pcie-root-port-0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x1", "chassis": 1}' \
          -device '{"id": "pcie-pci-bridge-0", "driver": "pcie-pci-bridge", "addr": "0x0", "bus": "pcie-root-port-0"}'  \
          -nodefaults \
          -device '{"driver": "VGA", "bus": "pcie.0", "addr": "0x2"}' \
          -m 5120 \
          -object '{"size": 5368709120, "id": "mem-machine_mem", "qom-type": "memory-backend-ram"}'  \
          -smp 40,maxcpus=40,cores=20,threads=1,dies=1,sockets=2  \
          -cpu 'Icelake-Server',ds=on,ss=on,dtes64=on,vmx=on,pdcm=on,hypervisor=on,tsc-adjust=on,avx512ifma=on,sha-ni=on,rdpid=on,fsrm=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,tsx-ctrl=on,hle=off,rtm=off,mpx=off,intel-pt=off,+kvm_pv_unhalt \
          -chardev socket,server=on,wait=off,id=qmp_id_qmpmonitor1,path=/var/tmp/monitor-qmpmonitor1-20230222-032849-4RqWCWM1  \
          -mon chardev=qmp_id_qmpmonitor1,mode=control \
          -chardev socket,server=on,wait=off,id=qmp_id_catch_monitor,path=/var/tmp/monitor-catch_monitor-20230222-032849-4RqWCWM1  \
          -mon chardev=qmp_id_catch_monitor,mode=control \
          -device '{"ioport": 1285, "driver": "pvpanic", "id": "idabULEz"}' \
          -chardev socket,server=on,wait=off,id=chardev_serial0,path=/var/tmp/serial-serial0-20230222-032849-4RqWCWM1 \
          -device '{"id": "serial0", "driver": "isa-serial", "chardev": "chardev_serial0"}'  \
          -chardev socket,id=seabioslog_id_20230222-032849-4RqWCWM1,path=/var/tmp/seabios-20230222-032849-4RqWCWM1,server=on,wait=off \
          -device isa-debugcon,chardev=seabioslog_id_20230222-032849-4RqWCWM1,iobase=0x402 \
          -device '{"id": "pcie-root-port-1", "port": 1, "driver": "pcie-root-port", "addr": "0x1.0x1", "bus": "pcie.0", "chassis": 2}' \
          -device '{"driver": "qemu-xhci", "id": "usb1", "bus": "pcie-root-port-1", "addr": "0x0"}' \
          -device '{"driver": "usb-tablet", "id": "usb-tablet1", "bus": "usb1.0", "port": "1"}' \
          -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \
          -blockdev driver=file,cache.direct=off,cache.no-flush=on,filename=/mnt/win2022-64-virtio-scsi-ovmf.qcow2,node-name=my_file -blockdev driver=qcow2,node-name=my,file=my_file -device ide-hd,drive=my,id=ide0-0-0,bus=ide.0,unit=0,bootindex=1 \
          -vnc :0  \
          -rtc base=localtime,clock=host,driftfix=slew  \
          -boot menu=off,order=cdn,once=c,strict=off \
          -chardev socket,id=char_vtpm_tpm0,path=/tmp/guest-swtpm.sock \
          -tpmdev emulator,chardev=char_vtpm_tpm0,id=emulator_vtpm_tpm0 \
          -device tpm-crb,id=tpm-crb_vtpm_tpm0,tpmdev=emulator_vtpm_tpm0 \
          -enable-kvm \
          -qmp tcp:0:1232,server,nowait \
          -monitor stdio \
      2.  On the RHEL8.10 host, boot a dst vm up, add -incoming command:
        • # cat ide_stable_guest_abi.sh 
          /usr/libexec/qemu-kvm \
          -name 'avocado-vt-vm1'  \
          -sandbox on  \
          -blockdev '{"node-name": "file_ovmf_code", "driver": "file", "filename": "/usr/share/OVMF/OVMF_CODE.secboot.fd", "auto-read-only": true, "discard": "unmap"}' \
          -blockdev '{"node-name": "drive_ovmf_code", "driver": "raw", "read-only": true, "file": "file_ovmf_code"}' \
          -blockdev '{"node-name": "file_ovmf_vars", "driver": "file", "filename": "/root/avocado/data/avocado-vt/avocado-vt-vm1_win11-64-virtio-scsi_avocado-vt-vm1_qcow2_filesystem_VARS.fd", "auto-read-only": true, "discard": "unmap"}' \
          -blockdev '{"node-name": "drive_ovmf_vars", "driver": "raw", "read-only": false, "file": "file_ovmf_vars"}' \
          -machine pc-q35-rhel8.6.0,memory-backend=mem-machine_mem,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars \
          -device '{"id": "pcie-root-port-0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x1", "chassis": 1}' \
          -device '{"id": "pcie-pci-bridge-0", "driver": "pcie-pci-bridge", "addr": "0x0", "bus": "pcie-root-port-0"}'  \
          -nodefaults \
          -device '{"driver": "VGA", "bus": "pcie.0", "addr": "0x2"}' \
          -m 5120 \
          -object '{"size": 5368709120, "id": "mem-machine_mem", "qom-type": "memory-backend-ram"}'  \
          -smp 40,maxcpus=40,cores=20,threads=1,dies=1,sockets=2  \
          -cpu 'Icelake-Server',ds=on,ss=on,dtes64=on,vmx=on,pdcm=on,hypervisor=on,tsc-adjust=on,avx512ifma=on,sha-ni=on,rdpid=on,fsrm=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,tsx-ctrl=on,hle=off,rtm=off,mpx=off,intel-pt=off,+kvm_pv_unhalt \
          -chardev socket,server=on,wait=off,id=qmp_id_qmpmonitor1,path=/var/tmp/monitor-qmpmonitor1-20230222-032849-4RqWCWM1  \
          -mon chardev=qmp_id_qmpmonitor1,mode=control \
          -chardev socket,server=on,wait=off,id=qmp_id_catch_monitor,path=/var/tmp/monitor-catch_monitor-20230222-032849-4RqWCWM1  \
          -mon chardev=qmp_id_catch_monitor,mode=control \
          -device '{"ioport": 1285, "driver": "pvpanic", "id": "idabULEz"}' \
          -chardev socket,server=on,wait=off,id=chardev_serial0,path=/var/tmp/serial-serial0-20230222-032849-4RqWCWM1 \
          -device '{"id": "serial0", "driver": "isa-serial", "chardev": "chardev_serial0"}'  \
          -chardev socket,id=seabioslog_id_20230222-032849-4RqWCWM1,path=/var/tmp/seabios-20230222-032849-4RqWCWM1,server=on,wait=off \
          -device isa-debugcon,chardev=seabioslog_id_20230222-032849-4RqWCWM1,iobase=0x402 \
          -device '{"id": "pcie-root-port-1", "port": 1, "driver": "pcie-root-port", "addr": "0x1.0x1", "bus": "pcie.0", "chassis": 2}' \
          -device '{"driver": "qemu-xhci", "id": "usb1", "bus": "pcie-root-port-1", "addr": "0x0"}' \
          -device '{"driver": "usb-tablet", "id": "usb-tablet1", "bus": "usb1.0", "port": "1"}' \
          -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \
          -blockdev driver=file,cache.direct=off,cache.no-flush=on,filename=/mnt/win2022-64-virtio-scsi-ovmf.qcow2,node-name=my_file -blockdev driver=qcow2,node-name=my,file=my_file -device ide-hd,drive=my,id=ide0-0-0,bus=ide.0,unit=0,bootindex=1 \
          -vnc :0  \
          -rtc base=localtime,clock=host,driftfix=slew  \
          -boot menu=off,order=cdn,once=c,strict=off \
          -chardev socket,id=char_vtpm_tpm0,path=/tmp/guest-swtpm.sock \
          -tpmdev emulator,chardev=char_vtpm_tpm0,id=emulator_vtpm_tpm0 \
          -device tpm-crb,id=tpm-crb_vtpm_tpm0,tpmdev=emulator_vtpm_tpm0 \
          -enable-kvm \
          -qmp tcp:0:1232,server,nowait \
          -monitor stdio \
          -incoming tcp:10.72.140.60:5888 \
      3. On both src and dst qmp monitor, execute follows command:
        • $ telnet 10.72.140.74 1232
        • {"execute":"qmp_capabilities"}

          {"execute":"migrate-set-capabilities","arguments":

          Unknown macro: {"capabilities"}

          ]}}   — run this command on both src and dst host

      1. On src qmp monitor, do migrate:
          • Unknown macro: {"execute"}
            }

          • {"execute":"migrate-start-postcopy"}
          • {"execute":"query-migrate"}
      1. Check the dst vm status.  ---> BSOD occurred.
        •  

      Expected results

      No BSOD

      Actual results

      BSOD

              virt-maint virt-maint
              rhn-support-phou Peixiu Hou
              virt-maint virt-maint
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

                Created:
                Updated:
                Resolved: