CPU topology recognition for Ryzen 9 7950X3D
In a scenario where i want to get maximum performance from a VM (by 'passing through' most physical machine resources), with CPU=host-passthrough,cache=passthrough, both with dies=1/16cores or dies=2/cores, Win 11 22H2 guest is not able to correctly/consistently recognize L3 cache topology (different L3-cache dies - 96MB and 32MB) of Ryzen 9 7950X3D (as reported by CoreInfo).
Correct L3 topology IS correctly passed-through mostly after the host reboot and the 1st VM launch, but inconsistently/almost never on subsequent VM starts (either passing through 32+32 or 96+96 L3 dies)
Host environment
- Operating system: Debian Trixie
- OS/kernel version: Linux 6.8.3-x64v4-xanmod1 #0~20240403.g58eb4cd SMP PREEMPT_DYNAMIC Wed Apr 3 16:46:50 UTC x86_64 GNU/Linux
- Architecture: x86
- QEMU flavor: qemu-system-x86_64
- QEMU version:
QEMU emulator version 8.2.2 (Debian 1:8.2.2+ds-2+b1)
- QEMU command line:
-machine pc-q35-7.2,usb=off,vmport=off,smm=on,kernel_irqchip=on,dump-guest-core=off,mem-merge=off,memory-backend=pc.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,hpet=off,acpi=on
-accel kvm
-cpu host,migratable=off,topoext=on,hypervisor=off,invtsc=on,apic=on,abm=on,svm=on,hv-time=on,kvm-pv-unhalt=off,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x1fff,hv-vpindex=on,hv-runtime=on,hv-synic=on,hv-stimer=on,hv-stimer-direct=on,hv-reset=on,hv-frequencies=on,hv-tlbflush=on,hv-ipi=on,kvm=off,kvm-hint-dedicated=on,kvm-poll-control=on,kvm-pv-ipi=off,host-cache-info=on,l3-cache=off,host-phys-bits=on
-global driver=cfi.pflash01,property=secure,value=on
-m size=67108864k
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":68719476736}'
-overcommit mem-lock=off
-smp 32,sockets=1,dies=2,clusters=1,cores=8,threads=2
-object '{"qom-type":"iothread","id":"iothread1"}'
-uuid a9a91599-bceb-4d9f-9025-e66190ed149a
-no-user-config
-nodefaults
-chardev socket,id=charmonitor,fd=32,server=on,wait=off
-mon chardev=charmonitor,id=monitor,mode=control
-rtc base=localtime,clock=vm,driftfix=slew
-global kvm-pit.lost_tick_policy=delay
-no-shutdown
-global ICH9-LPC.disable_s3=1
-global ICH9-LPC.disable_s4=1
-boot strict=on
..... -blockdev '{"driver":"host_device","filename":"/dev/nvme1n1","aio":"io_uring","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap","cache":{"direct":false,"no-flush":false}}'
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"discard":"ignore","cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-1-storage"}'
......
Emulated/Virtualized environment
- Operating system: Windows 11 22H2
- OS/kernel version: any
- Architecture: x86
Edited by Evgeni