When using qemu-system-x86_64 whpx acceleration, cpu information is set strangely.
Host environment
- Operating system: Windows 11
- OS/kernel version: N/A
- Architecture: x86_64
- QEMU flavor: qemu-system-x86_64
- QEMU version: 7.0.0
- QEMU command line: qemu-system-x86_64 -M q35 -smp sockets=1,cores=4,threads=1 -m 8g -device qxl-vga,vgamem_mb=256 -display sdl -drive file="Windows 11.vmdk",id=disk,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -rtc base=localtime -usbdevice tablet -accel whpx
Emulated/Virtualized environment
- Operating system: Windows 10 or Windows 11 or Linux.. etc
- OS/kernel version: N/A
- Architecture: x86_64
Description of problem
When using the guest with whpx acceleration in qemu-system-x86_64, the CPU information of the guest seems to be set strangely.
When the guest is Linux, it seems that individual CPUs are allocated as many as the number of cores when using the -accel whpx option and the -smp option.
- -smp 4, -smp cores=4, -smp sockes=1, cores=4, threads=1 are all set to have 4 single-core CPUs plugged in
If the guest is Windows, check the information with CPU-Z It is recognized as a Pentium 4 and is displayed as a CPU with 1 core and n threads.
Physically, it seems to be set to have n individual CPUs with 1 core plugged in. In Windows 11 Home (which seems to be the case for all versions of Windows Home), you cannot give the -smp value more than 5.
- When booting with the -smp option value of 5 or more, a BSOD saying multiprocessor configuration not supported appears. -smp n, -smp cores=n, -smp sockes=1,cores=n,threads=1 All same symptoms occur
Steps to reproduce
- Boot Windows or Linux with -accel whpx -smp 4 option (or with the -accel whpx -smp sockets=1,cores=4,threads=1 option to make it deterministic)
- For Linux guest, use cat /proc/cpuinfo to check cpu information, for Windows guest, use cpu-z, device manager, task manager, etc. to check cpu information
- In the information of the Linux guest, it is displayed as fixed as core id : 0, cpu cores : 1, In Windows guest, information is displayed as written in "Description of problem" respectively.
Additional information
Windows 11 Home Guest set to 4 cores :
qemu-system-x86_64 -M q35 -smp sockets=1,cores=4,threads=1 -m 8g -device qxl-vga,vgamem_mb=256 -display sdl -drive file="Windows 11.vmdk",id=disk,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -rtc base=localtime -usbdevice tablet -accel whpx
Windows 11 Home Guest set to 5 cores :
qemu-system-x86_64 -M q35 -smp sockets=1,cores=5,threads=1 -m 8g -device qxl-vga,vgamem_mb=256 -display sdl -drive file="Windows 11.vmdk",id=disk,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -rtc base=localtime -usbdevice tablet -accel whpx
Linux (Debian 11) guest set to 4 cores :
qemu-system-x86_64 -M q35 -smp sockets=1,cores=4,threads=1 -m 4g -device qxl-vga,vgamem_mb=256 -display sdl -drive file="debian.vdi",id=disk,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -rtc base=localtime -usbdevice tablet -accel whpx