Bug 2019314
| Summary: | [ovmf] nc broken after hotplug device for windows guest | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | menli <menli> |
| Component: | qemu-kvm | Assignee: | Virtualization Maintenance <virt-maint> |
| qemu-kvm sub component: | Devices | QA Contact: | CongLi <coli> |
| Status: | CLOSED DUPLICATE | Docs Contact: | |
| Severity: | high | ||
| Priority: | high | CC: | coli, jinzhao, phou, qinwang, qizhu, virt-maint, xuwei |
| Version: | 9.0 | Flags: | pm-rhel:
mirror+
|
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Windows | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2021-11-04 08:46:52 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
edk2 version: edk2-ovmf-20210527gite1999b264f1f-6.el9.noarch I found the nc disconnection only at the first time.
Versions:
kernel-5.14.0-1.7.1.el9.x86_64
qemu-kvm-6.1.0-6.el9
edk2-ovmf-20210527gite1999b264f1f-7.el9.noarch
win11 with virtio-win-prewhql-0.1-211.iso
1. boot a Win11 guest
# mkdir /tmp/mytpm
# /usr/bin/swtpm_setup --tpm2 --tpmstate /tmp/mytpm --create-ek-cert --create-platform-cert --overwrite --lock-nvram
# /usr/bin/swtpm socket --daemon --ctrl type=unixio,path=/tmp/avocado_596hxgoj/avocado-vt-vm1_tpm0_swtpm.sock,mode=0600 --tpmstate dir=/tmp/mytpm,mode=0600 --tpm2
/usr/libexec/qemu-kvm \
-S \
-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=on,discard=unmap \
-blockdev node-name=drive_ovmf_code,driver=raw,read-only=on,file=file_ovmf_code \
-blockdev node-name=file_ovmf_vars,driver=file,filename=/home/kvm_autotest_root/images/avocado-vt-vm1_win11-64-virtio-scsi.qcow2_VARS.fd,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_ovmf_vars,driver=raw,read-only=off,file=file_ovmf_vars \
-machine q35,memory-backend=mem-machine_mem,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars \
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
-device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \
-nodefaults \
-device VGA,bus=pcie.0,addr=0x2 \
-m 109568 \
-object memory-backend-ram,size=109568M,id=mem-machine_mem \
-smp 56,maxcpus=56,cores=28,threads=1,dies=1,sockets=2 \
-cpu 'Icelake-Server-noTSX',hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,+kvm_pv_unhalt \
-chardev socket,wait=off,path=/tmp/avocado_596hxgoj/monitor-qmpmonitor1-20211101-171713-6TwaG1GI,server=on,id=qmp_id_qmpmonitor1 \
-mon chardev=qmp_id_qmpmonitor1,mode=control \
-chardev socket,wait=off,path=/tmp/avocado_596hxgoj/monitor-catch_monitor-20211101-171713-6TwaG1GI,server=on,id=qmp_id_catch_monitor \
-mon chardev=qmp_id_catch_monitor,mode=control \
-device pvpanic,ioport=0x505,id=id7CzbRb \
-chardev socket,wait=off,path=/tmp/avocado_596hxgoj/serial-serial0-20211101-171713-6TwaG1GI,server=on,id=chardev_serial0 \
-device isa-serial,id=serial0,chardev=chardev_serial0 \
-chardev socket,id=seabioslog_id_20211101-171713-6TwaG1GI,path=/tmp/avocado_596hxgoj/seabios-20211101-171713-6TwaG1GI,server=on,wait=off \
-device isa-debugcon,chardev=seabioslog_id_20211101-171713-6TwaG1GI,iobase=0x402 \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \
-device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
-device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-2,addr=0x0 \
-blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/images/win11-64-virtio-scsi.qcow2,cache.direct=on,cache.no-flush=off \
-blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 \
-device scsi-hd,id=image1,drive=drive_image1,write-cache=on \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
-device virtio-net-pci,mac=9a:6d:9b:a3:91:92,id=idu0gazB,netdev=idVL4RzC,bus=pcie-root-port-3,addr=0x0 \
-netdev tap,id=idVL4RzC,vhost=on \
-blockdev node-name=file_cd1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/iso/windows/winutils.iso,cache.direct=on,cache.no-flush=off \
-blockdev node-name=drive_cd1,driver=raw,read-only=on,cache.direct=on,cache.no-flush=off,file=file_cd1 \
-device scsi-cd,id=cd1,drive=drive_cd1,write-cache=on \
-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/avocado_596hxgoj/avocado-vt-vm1_tpm0_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 \
-device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=5 \
-monitor stdio \
-qmp tcp:0:6666,server,nowait \
2. connect to guest session
# nc -C 10.73.116.196 10022
get disk index
C:\>wmic diskdrive get index
Index
0
3. hotplug blk device
# telnet localhost 6666
{"execute":"qmp_capabilities"}
{"return": {}}
{"execute": "blockdev-add", "arguments": {"node-name": "file_stg0", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/images/storage0.raw", "cache": {"direct": true, "no-flush": false}}, "id": "hM7JFSeo"}
{"return": {}, "id": "hM7JFSeo"}
{"execute": "blockdev-add", "arguments": {"node-name": "drive_stg0", "driver": "raw", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_stg0"}, "id": "QOuMpwwZ"}
{"return": {}, "id": "QOuMpwwZ"}
{"execute": "device_add", "arguments": {"driver": "virtio-blk-pci", "id": "stg0", "drive": "drive_stg0", "write-cache": "on", "bus": "pcie_extra_root_port_0", "addr": "0x0"}, "id": "T8sSU2i0"}
{"return": {}, "id": "T8sSU2i0"}
{"execute": "query-block"}
4. re-connect guest session
# nc -C 10.73.116.196 10022
5. get disk index after hotplug blk disk
C:\>wmic diskdrive get index
Index
0
1
6. unplug blk device and re-hotplug it
{"execute":"device_del","arguments":{"id":"stg0"} }
{"return": {}}
{"timestamp": {"seconds": 1635894046, "microseconds": 658627}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/stg0/virtio-backend"}}
{"timestamp": {"seconds": 1635894046, "microseconds": 658821}, "event": "DEVICE_DELETED", "data": {"device": "stg0", "path": "/machine/peripheral/stg0"}}
{"execute": "blockdev-del","arguments": { "node-name": "drive_stg0"}}
{"return": {}}
{"execute": "blockdev-del","arguments": { "node-name": "file_stg0"}}
{"return": {}}
{"execute": "blockdev-add", "arguments": {"node-name": "file_stg0", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/images/storage0.raw", "cache": {"direct": true, "no-flush": false}}, "id": "hM7JFSeo"}
{"return": {}, "id": "hM7JFSeo"}
{"execute": "blockdev-add", "arguments": {"node-name": "drive_stg0", "driver": "raw", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_stg0"}, "id": "QOuMpwwZ"}
{"return": {}, "id": "QOuMpwwZ"}
{"execute": "device_add", "arguments": {"driver": "virtio-blk-pci", "id": "stg0", "drive": "drive_stg0", "write-cache": "on", "bus": "pcie_extra_root_port_0", "addr": "0x0"}, "id": "T8sSU2i0"}
{"return": {}, "id": "T8sSU2i0"}
7. check nc session
C:\>wmic diskdrive get index
Index
0
1
After step 3, nc disconnection
C:\>
Ncat: Connection reset by peer.
After step 5, nc works well.
After step 7, nc works well.
Tested in rhel8.6, also hit it. Versions: kernel-4.18.0-348.3.el8.x86_64 qemu-kvm-6.1.0-4.module+el8.6.0+13039+4b81a1dc edk2-ovmf-20210527gite1999b264f1f-3.el8.noarch win11 with virtio-win-prewhql-0.1-211.iso Reproduce on
Red Hat Enterprise Linux release 9.0 Beta (Plow)
5.14.0-11.el9.x86_64
qemu-kvm-6.1.0-6.el9.x86_64
seabios-bin-1.14.0-7.el9.noarch
edk2-ovmf-20210527gite1999b264f1f-6.el9.noarch
It looks like related to device add operation not limit on block device.
Steps:
1.boot vm
/usr/libexec/qemu-kvm \
-name testvm \
-machine q35,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars \
-m 4G \
-smp 8 \
-cpu host,svm,+kvm_pv_unhalt \
-device ich9-usb-ehci1,id=usb1 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
\
-blockdev node-name=file_ovmf_code,driver=file,filename=/usr/share/OVMF/OVMF_CODE.secboot.fd,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_ovmf_code,driver=raw,read-only=on,file=file_ovmf_code \
-blockdev node-name=file_ovmf_vars,driver=file,filename=/home/ovmf/OVMF_VARS.fd,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_ovmf_vars,driver=raw,read-only=off,file=file_ovmf_vars \
\
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x3,chassis=1 \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x3.0x1,bus=pcie.0,chassis=2 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x3.0x2,bus=pcie.0,chassis=3 \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x3.0x3,bus=pcie.0,chassis=4 \
-device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x3.0x4,bus=pcie.0,chassis=5 \
-device pcie-root-port,id=pcie-root-port-5,port=0x5,addr=0x3.0x5,bus=pcie.0,chassis=6 \
-device pcie-root-port,id=pcie-root-port-6,port=0x6,addr=0x3.0x6,bus=pcie.0,chassis=7 \
-device pcie-root-port,id=pcie-root-port-7,port=0x7,addr=0x3.0x7,bus=pcie.0,chassis=8 \
-device pcie-root-port,id=pcie_extra_root_port_0,bus=pcie.0,addr=0x4 \
-device virtio-scsi-pci,id=scsi0,bus=pcie-root-port-5 \
-device virtio-scsi-pci,id=scsi1,bus=pcie-root-port-6 \
-blockdev driver=qcow2,file.driver=file,cache.direct=off,cache.no-flush=on,file.filename=/home/kvm_autotest_root/images/win2019-64-virtio-scsi.qcow2,node-name=drive_image1 \
-device scsi-hd,id=os,drive=drive_image1,bus=scsi0.0,bootindex=0,serial=OS_DISK \
\
-blockdev driver=qcow2,file.driver=file,file.filename=/home/kvm_autotest_root/images/data1.qcow2,node-name=data_image1 \
-device scsi-hd,id=data1,drive=data_image1,bus=scsi0.0,bootindex=1,serial=DATA_DISK \
-vnc :5 \
-monitor stdio \
-qmp tcp:0:5955,server=on,wait=off \
-device virtio-net-pci,mac=9a:b5:b6:b1:b2:b7,id=nic1,netdev=nicpci,bus=pcie-root-port-7 \
-netdev tap,id=nicpci \
-chardev socket,id=qmpmonitor1,path=/var/tmp/run-qmp.log,server=on,wait=off \
-mon chardev=qmpmonitor1,mode=control \
-chardev socket,id=serial1,path=/var/tmp/run-serial.log,server=on,wait=off \
-device isa-serial,chardev=serial1 \
-D debug.log \
-boot menu=on,reboot-timeout=1000,strict=off \
2.create nc connection with guest ip and port
nc -C 10.73.114.185 10022
3.create nc connection with socket file
nc -U /var/tmp/run-serial.log
4.hotplug new device (nic or block)
{"execute": "qmp_capabilities"}
{ "execute": "netdev_add", "arguments": { "type":"tap","id":"idb8GVnn","vhost":true,"script":"/etc/qemu-ifup"}}
{"execute": "device_add", "arguments": { "driver":"virtio-net-pci","netdev":"idb8GVnn","mac":"00:1a:4a:42:0b:01","id": "idVn2ph4","bus":"pcie_extra_root_port_0"}}
5.check NC connection
Result:
Rhe nc connnection with guest ip and port is broken
Ncat: Connection reset by peer.
The nc connection with socked file is keep.
Also hit this issue when hotpluging virtio-scsi-pci device.
Here are remote shell server logs:
Shell server: waiting for clients to connect...
File transfer server: waiting for clients to connect...
Shell server: new client connected (10.73.73.9:45796)
Shell server: client disconnected (10.73.73.9:45796) ----after virtio-scsi-pci device was pluged
Child exited
SocketToChild thread exited
nc connection disconnected after run this command:
{'execute': 'device_add', 'arguments': {'id':'virtio_scsi_pci1', 'driver':'virtio-scsi-pci', 'num_queues':'12', 'bus':'pcie_extra_root_port_0', 'addr':'0x0'},'id': '9PP8WMx4'}
Reproduced with qemu-kvm-6.1.0-5.el9.x86_64
Other versions:
kernel-5.14.0-9.el9.x86_64
edk2-ovmf-20210527gite1999b264f1f-6.el9.noarch
virtio-win-prewhql-213/214
Also tried to test with qemu-kvm-6.0.0-13.el9_b.5.x86_64, cannot reproduce this issue.
other versions:
5.14.0-6.el9.x86_64
edk2-ovmf-20210527gite1999b264f1f-6.el9.noarch
virtio-win-prewhql-213
Thanks~
Peixiu
Tested on
Red Hat Enterprise Linux release 9.0 Beta (Plow)
5.14.0-11.el9.x86_64
qemu-kvm-6.1.0-6.el9.x86_64
seabios-bin-1.14.0-7.el9.noarch
edk2-ovmf-20210527gite1999b264f1f-6.el9.noarch
It does not reproduce after adding following option on VM command.
-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
The question is "ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off" is necessary for the OVMF ?
/usr/libexec/qemu-kvm \
-name testvm \
-machine q35,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars \
-m 4G \
-smp 8 \
-cpu host,svm,+kvm_pv_unhalt \
-device ich9-usb-ehci1,id=usb1 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off \
\
-blockdev node-name=file_ovmf_code,driver=file,filename=/usr/share/OVMF/OVMF_CODE.secboot.fd,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_ovmf_code,driver=raw,read-only=on,file=file_ovmf_code \
-blockdev node-name=file_ovmf_vars,driver=file,filename=/home/ovmf/OVMF_VARS.fd,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_ovmf_vars,driver=raw,read-only=off,file=file_ovmf_vars \
\
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x3,chassis=1 \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x3.0x1,bus=pcie.0,chassis=2 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x3.0x2,bus=pcie.0,chassis=3 \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x3.0x3,bus=pcie.0,chassis=4 \
-device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x3.0x4,bus=pcie.0,chassis=5 \
-device pcie-root-port,id=pcie-root-port-5,port=0x5,addr=0x3.0x5,bus=pcie.0,chassis=6 \
-device pcie-root-port,id=pcie-root-port-6,port=0x6,addr=0x3.0x6,bus=pcie.0,chassis=7 \
-device pcie-root-port,id=pcie-root-port-7,port=0x7,addr=0x3.0x7,bus=pcie.0,chassis=8 \
-device pcie-root-port,id=pcie_extra_root_port_0,bus=pcie.0,addr=0x4 \
-device virtio-scsi-pci,id=scsi0,bus=pcie-root-port-5 \
-device virtio-scsi-pci,id=scsi1,bus=pcie-root-port-6 \
-blockdev driver=qcow2,file.driver=file,cache.direct=off,cache.no-flush=on,file.filename=/home/kvm_autotest_root/images/win2019-64-virtio-scsi.qcow2,node-name=drive_image1 \
-device scsi-hd,id=os,drive=drive_image1,bus=scsi0.0,bootindex=0,serial=OS_DISK \
\
-blockdev driver=qcow2,file.driver=file,file.filename=/home/kvm_autotest_root/images/data1.qcow2,node-name=data_image1 \
-device scsi-hd,id=data1,drive=data_image1,bus=scsi0.0,bootindex=1,serial=DATA_DISK \
-vnc :5 \
-monitor stdio \
-qmp tcp:0:5955,server=on,wait=off \
-device virtio-net-pci,mac=9a:b5:b6:b1:b2:b7,id=nic1,netdev=nicpci,bus=pcie-root-port-7 \
-netdev tap,id=nicpci \
-chardev socket,id=qmpmonitor1,path=/var/tmp/run-qmp.log,server=on,wait=off \
-mon chardev=qmpmonitor1,mode=control \
-chardev socket,id=serial1,path=/var/tmp/run-serial.log,server=on,wait=off \
-device isa-serial,chardev=serial1 \
-D debug.log \
-boot menu=on,reboot-timeout=1000,strict=off \
*** This bug has been marked as a duplicate of bug 2004829 *** |
Description of problem: nc broken after hotplug for windows guest Version-Release number of selected component (if applicable): qemu-kvm-6.1.0-5.el9.x86_64 kernel-5.14.0-7.el9.x86_64 seabios-bin-1.14.0-6.el9.noarch virtio-win-prewhql-0.1-213.iso How reproducible: 100% Steps to Reproduce: 1. start a ovmf windows guest /usr/libexec/qemu-kvm \ -name 'ovmf' \ -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 \ -blockdev node-name=file_stg1,driver=file,cache.direct=on,cache.no-flush=off,filename=/home/123/win2019-64-virtio.qcow2,aio=threads \ -blockdev node-name=drive_stg1,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_stg1 \ -device virtio-blk-pci,id=stg1,drive=drive_stg1,bus=pci.8,addr=0x0 \ -device virtio-net-pci,mac=9a:36:83:b6:3d:05,id=idJVpmsF,netdev=id23ZUK6,bus=pci.3 \ -netdev tap,id=id23ZUK6,vhost=on \ -m 14336 \ -smp 2,maxcpus=4 \ -cpu 'Skylake-Server-IBRS',ss=on,vmx=on,pdcm=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,kvm_pv_unhalt=on \ -drive id=drive_cd1,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/kvm_autotest_root/iso/windows/winutils.iso\ -device ide-cd,id=cd2,drive=drive_cd1,bus=ide.0,unit=0 \ -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 \ -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. connect to guest session: # nc -C $guest_ip 10022 3. hotplug blk device {"execute": "blockdev-add", "arguments": {"node-name": "file_stg0", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/images/storage0.raw", "cache": {"direct": true, "no-flush": false}}, "id": "hM7JFSeo"} {"return": {}, "id": "hM7JFSeo"} {"execute": "blockdev-add", "arguments": {"node-name": "drive_stg0", "driver": "raw", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_stg0"}, "id": "QOuMpwwZ"} {"return": {}, "id": "QOuMpwwZ"} {"execute": "device_add", "arguments": {"driver": "virtio-blk-pci", "id": "stg0", "drive": "drive_stg0", "write-cache": "on", "bus": "pci.7", "addr": "0x0"}, "id": "T8sSU2i0"} {"return": {}, "id": "T8sSU2i0"} Actual results: after step3 hotplug, Ncat: Connection reset by peer. Expected results: Ncat should connect normally after hotplug. Additional info: 1. not reproduce this issue with seabios 2. not hit on qemu-kvm-6.0.0-30.module+el8.5.0+12586+476da3e1.x86_64