-
Bug
-
Resolution: Unresolved
-
Normal
-
None
-
rhel-9.2.0
-
None
-
Moderate
-
rhel-sst-virtualization
-
ssg_virtualization
-
5
-
False
-
-
None
-
None
-
None
-
None
-
If docs needed, set a value
-
-
x86_64
-
None
Description of problem:
System hang when do cpu hotplug on Win2022 guest.
Tested with seabios mode, hit it on Win2022 guest, and did not hit on Win2019 guest.
Version-Release number of selected component (if applicable):
HOST: RHEL9.2.0
Guest: Win2022
kernel-5.14.0-249.el9.x86_64
qemu-kvm-7.2.0-8.el9.x86_64
seabios-bin-1.16.1-1.el9.noarch
virtio-win-prewhql-234
How reproducible:
100%
Steps to Reproduce:
1.Boot the Win2022 guest up with all hv flags:
/usr/libexec/qemu-kvm \
-name 'installer' \
-machine q35 \
-nodefaults \
-vga std \
-device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 \
-device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 \
-device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 \
-device pcie-root-port,port=0x13,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 \
-device pcie-root-port,port=0x14,chassis=5,id=pci.5,bus=pcie.0,addr=0x2.0x4 \
-device pcie-root-port,port=0x15,chassis=6,id=pci.6,bus=pcie.0,addr=0x2.0x5 \
-device pcie-root-port,port=0x16,chassis=7,id=pci.7,bus=pcie.0,addr=0x2.0x6 \
-device pcie-root-port,port=0x17,chassis=8,id=pci.8,bus=pcie.0,addr=0x2.0x7 \
-device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pci.4,addr=0x0 \
-blockdev node-name=file_image1,driver=file,cache.direct=on,cache.no-flush=off,filename=/home/hyper-v-run/win2022-64-virtio-scsi.qcow2,aio=threads \
-blockdev node-name=drive_image1,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_image1 \
-device scsi-hd,id=image1,drive=drive_image1,bus=virtio_scsi_pci0.0 \
-blockdev node-name=file_stg1,driver=file,cache.direct=on,cache.no-flush=off,filename=stgtest1.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:06,id=idJVpmsF,netdev=id23ZUK6,bus=pci.3 \
-netdev tap,id=id23ZUK6,vhost=on \
-m 14336 \
-cpu 'Icelake-Server-noTSX',hv_stimer,hv_synic,hv_vpindex,hv_reset,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_evmcs,hv_crash,hv_ipi,+kvm_pv_unhalt \
-no-hpet \
-smp 4,maxcpus=6,cores=3,threads=1,dies=1,sockets=2 \
-drive id=drive_cd1,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/kvm_autotest_root/iso/ISO/Win2022/windows_server_2022_x64_testsigned_enable_dvd.iso \
-device ide-cd,id=cd2,drive=drive_cd1,bus=ide.0,unit=0 \
-cdrom /home/kvm_autotest_root/iso/windows/winutils.iso \
-device piix3-usb-uhci,id=usb -device usb-tablet,id=input0 \
-vnc :2 \
-rtc base=localtime,clock=host,driftfix=slew \
-boot order=cdn,once=c,menu=off,strict=off \
-enable-kvm \
-qmp tcp:0:1232,server,nowait \
-monitor stdio \
-device vmcoreinfo \
-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 \
2.$ telnet 10.73.72.118 1232
3.{"QMP": {"version": {"qemu":
, "package": "qemu-kvm-7.2.0-8.el9"}, "capabilities": ["oob"]}}
{"execute": "qmp_capabilities"}4.
{"execute": "query-hotpluggable-cpus"}{"return": [{"props":
{"core-id": 2, "thread-id": 0, "socket-id": 1}, "vcpus-count": 1, "type": "Icelake-Server-noTSX-x86_64-cpu"}, {"props":
{"core-id": 1, "thread-id": 0, "socket-id": 1}, "vcpus-count": 1, "type": "Icelake-Server-noTSX-x86_64-cpu"}, {"props":
{"core-id": 0, "thread-id": 0, "socket-id": 1}, "vcpus-count": 1, "qom-path": "/machine/unattached/device[4]", "type": "Icelake-Server-noTSX-x86_64-cpu"}, {"props":
{"core-id": 2, "thread-id": 0, "socket-id": 0}, "vcpus-count": 1, "qom-path": "/machine/unattached/device[3]", "type": "Icelake-Server-noTSX-x86_64-cpu"}, {"props":
{"core-id": 1, "thread-id": 0, "socket-id": 0}, "vcpus-count": 1, "qom-path": "/machine/unattached/device[2]", "type": "Icelake-Server-noTSX-x86_64-cpu"}, {"props":
{"core-id": 0, "thread-id": 0, "socket-id": 0}, "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]", "type": "Icelake-Server-noTSX-x86_64-cpu"}]}
5. On the guest, check the Processors in Device manager.
There are 4 processors show out.
6. Do Cpu hotplug on qmp monitor:
{ "execute": "device_add","arguments":{"driver":"Icelake-Server-noTSX-x86_64-cpu","core-id": 1, "thread-id": 0, "socket-id": 1,"id":"cpu2" }}
{"timestamp":
{"seconds": 1678090670, "microseconds": 169066}, "event": "ACPI_DEVICE_OST", "data": {"info":
{"device": "cpu2", "source": 0, "status": 0, "slot": "4", "slot-type": "CPU"}}}
{"return": {}}
7. Check the processor status in windows guest device manager.
There are 5 processors shown, but the system was hang, mouse cannot be moved on the desktop.
8. Try to system_reset the system, after reset, the system restore to work.
9. Try to hotplug another cpu:
{ "execute": "device_add","arguments":{"driver":"Icelake-Server-noTSX-x86_64-cpu","core-id": 2, "thread-id": 0, "socket-id": 1,"id":"cpu1" }}
{"return": {}}
{"timestamp":
, "event": "ACPI_DEVICE_OST", "data": {"info":
{"device": "cpu1", "source": 0, "status": 0, "slot": "5", "slot-type": "CPU"}}}
Actual results:
System hang
Expected results:
Smoothly pass
Additional info: