AMD Nested Virtualization for Windows 11 is not working with GPU passthrough

pleha

New Member
Mar 6, 2025
2
1
1
Hi,
It looks like what you can not use at the same time AMD Nested Virtualization and GPU passthrough.

When you do so, you will get VM crash, and 'guest-panicked' icon in UI.
Screenshot 2025-03-12 2147363.png
All I have in logs:

Code:
proxmox kernel: kvm_amd: kvm [2955]: vcpu0, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu1, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu2, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu3, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu4, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu5, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu6, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu7, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu8, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0
proxmox kernel: kvm_amd: kvm [2955]: vcpu9, guest rIP: 0xfffff80e8093b475 Unhandled WRMSR(0xc0010115) = 0x0

To workarround this it is enough to turn off GPU passthrough, or unistall Virtual Machine Platform in Windows.
They can not coexist toghether.
Screenshot 2025-03-13 201543.png


Maybe this behaviour is specific to my software/hardware, so I'm adding details:


pve-qemu-kvm: 9.2.0-2
proxmox-ve: 8.3.0 (running kernel: 6.8.12-8-pve)

Processor: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics

Code:
agent: 1
args: -cpu 'host'
balloon: 0
bios: ovmf
boot: order=scsi0
cores: 16
cpu: host,hidden=1
efidisk0: local-lvm:vm-100-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
#hostpci0: 0000:c6:00.0,pcie=1,romfile=vbios.bin,x-vga=1
#hostpci2: 0000:c8:00.4
machine: pc-q35-9.0,viommu=virtio
memory: 36864
meta: creation-qemu=9.0.2,ctime=1737833890
name: Windows11
net0: virtio=BC:24:11:1C:0C:88,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsi0: local-lvm:vm-100-disk-1,cache=writeback,discard=on,iothread=1,size=256G
scsihw: virtio-scsi-single
smbios1: uuid=f7cf72c0-98a5-4546-8874-333fa2a06956
sockets: 1
tablet: 0
tpmstate0: local-lvm:vm-100-disk-2,size=4M,version=v2.0
vga: qxl
vmgenid: 613504a5-d8b6-4282-9f77-6f486cc75332

In BIOS both options enabled: IOMMU,SR-IOV.


Similar request, and helpful links:
 
Hello,

you can try this workaround:

Not related, but you can remove args: -cpu 'host' . You already have cpu: host,hidden=1 in your config.
Also, you only need viommu=virtio if you want to pass the GPU to Hyper-V VMs inside your Windows VM.