-
Task
-
Resolution: Unresolved
-
Critical
-
None
-
None
-
None
Hit BSOD with the slow nfs, the detailed steps are:
Tested with:
Qemu-kvm-8.2.0-11.el9_4
Kernel-5.14.0-427.13.1.el9_4.x86_64
Nfs info:
/home/timao/bsod/share from 10.72.140.12:/home/timao/nfs_share
Flags: rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.72.140.12,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=10.72.140.12
Qemu-kvm command line:
/usr/libexec/qemu-kvm \ -S \ -name 'avocado-vt-vm1' \ -sandbox on,elevateprivileges=deny,obsolete=deny,resourcecontrol=deny \ -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_win10-64-virtio-ovmf_raw_filesystem_VARS.raw", "auto-read-only": true, "discard": "unmap"}' \ -blockdev '{"node-name": "drive_ovmf_vars", "driver": "raw", "read-only": false, "file": "file_ovmf_vars"}' \ -machine q35,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars,memory-backend=mem-machine_mem \ -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 30720 \ -object '{"size": 32212254720, "id": "mem-machine_mem", "qom-type": "memory-backend-ram"}' \ -smp 16,maxcpus=16,cores=8,threads=1,dies=1,sockets=2 \ -cpu 'EPYC-Rome-v4',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,hv-xmm-input,hv_tlbflush_ext,+kvm_pv_unhalt \ -chardev socket,id=qmp_id_qmpmonitor1,path=/var/tmp/avocado_bvtvqkqd/monitor-qmpmonitor1-20251028-014829-DE2i8Um5,server=on,wait=off \ -mon chardev=qmp_id_qmpmonitor1,mode=control \ -chardev socket,id=qmp_id_catch_monitor,path=/var/tmp/avocado_bvtvqkqd/monitor-catch_monitor-20251028-014829-DE2i8Um5,server=on,wait=off \ -mon chardev=qmp_id_catch_monitor,mode=control \ -device '{"ioport": 1285, "driver": "pvpanic", "id": "idIPbF3P"}' \ -chardev socket,id=chardev_serial0,path=/var/tmp/avocado_bvtvqkqd/serial-serial0-20251028-014829-DE2i8Um5,server=on,wait=off \ -device '{"id": "serial0", "driver": "isa-serial", "chardev": "chardev_serial0"}' \ -chardev socket,id=seabioslog_id_20251028-014829-DE2i8Um5,path=/var/tmp/avocado_bvtvqkqd/seabios-20251028-014829-DE2i8Um5,server=on,wait=off \ -device isa-debugcon,chardev=seabioslog_id_20251028-014829-DE2i8Um5,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"}' \ -blockdev '{"node-name": "drive_image1", "driver": "file", "read-only": false, "discard": "unmap", "aio": "threads", "filename": "/home/timao/bsod/share/win10-64-virtio-ovmf.raw", "cache": {"direct": true, "no-flush": false}}' \ -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \ -device '{"driver": "virtio-blk-pci", "id": "image1", "drive": "drive_image1", "write-cache": "on", "serial": "SYSTEM_DISK0", "bus": "pcie-root-port-2", "addr": "0x0", "werror":"report","rerror":"report"}' \ -device '{"id": "pcie-root-port-3", "port": 3, "driver": "pcie-root-port", "addr": "0x1.0x3", "bus": "pcie.0", "chassis": 4}' \ -device '{"driver": "virtio-net-pci", "mac": "9a:91:56:6c:8c:e7", "id": "idI1tvEI", "netdev": "idsgNetH", "bus": "pcie-root-port-3", "addr": "0x0"}' \ -netdev '{"id": "idsgNetH", "type": "tap", "vhost": true}' \ -blockdev '{"node-name": "drive_winutils", "driver": "file", "read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/iso/windows/winutils.iso", "cache": {"direct": true, "no-flush": false}}' \ -device '{"driver": "ide-cd", "id": "winutils", "drive": "drive_winutils", "write-cache": "on", "bus": "ide.1", "unit": 0}' \ -vnc :0 \ -rtc base=localtime,clock=host,driftfix=slew \ -boot menu=off,order=cdn,once=d,strict=off \ -enable-kvm \ -monitor stdio
Limit the nfs in host:
# tc qdisc add dev switch root handle 1: prio # tc filter add dev switch parent 1:0 protocol ip prio 1 u32 match ip dst 10.72.140.12 flowid 1:1 # tc qdisc add dev switch parent 1:1 handle 2: netem delay 1000ms 400ms loss 20% (delete)# tc qdisc del dev switch root
Preparation in guest:
- Change regedit of TimeOutValue to 10s
- Running diskspd: # diskspd.exe -b4k -d3600 -o4 -t4 -r -w50 -Sh -c1G C:\noise.dat
- # Testlimit64.exe -d 100 -c 400 (optional)
Results:
After several minutes, the guest hangs, and keep on waiting several/tens minutes, guest will hit BSOD, sometimes executing (delete)# tc qdisc del dev switch root will hit BSOD more quickly

Dumpfile: 10.72.140.40:/home/timao/bsod/memorydump/memory_management/Memory.dmp (root/kvmautotest)

Dump file:
10.72.140.40: /home/timao/bsod/memorydump/kernel_security_check_failure/Memory.dmp (root/kvmautotest)
With the 60s(default) of TimeOutValue, and # tc qdisc add dev switch parent 1:1 handle 2: netem delay 6000ms 400ms loss 20%

Memorydump: 10.72.140.40:/home/timao/bsod/memorydump/page_fault/Memory.dmp (root/kvmautotest)