TL;DR - Disable Windows Features related to Virtualization.
I run Proxmox in a single GPU passthrough configuration with a Windows 11 workstation. Upgrade to 7.4 went smooth and everything worked... but I soon began to realize that the "end-user experience" on my workstation had degraded significantly. Everything just seemed to slower/laggy across the board. No errors in Proxmox or Windows pointing to any problems... just not the experience I had been used to.
NOTE: I understand that the "end-user experience" of this type of configuration will never match bare metal.
Hardware:
So, I started researching general recommendations for Windows 11 VM performance on Proxmox and tried everything I found. And one of these made a big difference. I had the "Virtual Machine Platform" and "Windows Subsystem for Linux" features installed. Once I removed these and rebooted the VM... everything was back to "normal". (Maybe even better?) Just thought I would post this here in case anyone is experiencing similar problems.
Now for the real question!
I've had these features enabled since I started using this Proxomx setup. I honestly never used them, but they never caused me any issues. So, is it just that these features don't play well with the new version of Proxmox/Kernel? Or was I missing out on even more performance previously?
I run Proxmox in a single GPU passthrough configuration with a Windows 11 workstation. Upgrade to 7.4 went smooth and everything worked... but I soon began to realize that the "end-user experience" on my workstation had degraded significantly. Everything just seemed to slower/laggy across the board. No errors in Proxmox or Windows pointing to any problems... just not the experience I had been used to.
NOTE: I understand that the "end-user experience" of this type of configuration will never match bare metal.
Hardware:
- Intel Core i9-10850K 3.6 GHz 10-Core Processor
- Asus ROG STRIX Z490-E GAMING ATX LGA1200 Motherboard
- G.Skill Ripjaws V 64 GB (4 x 16 GB) DDR4-3600 CL16 Memory
Code:
IOMMU Group 0 00:00.0 Host bridge [0600]: Intel Corporation Device [8086:9b33] (rev 05)
IOMMU Group 1 00:01.0 PCI bridge [0604]: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 05)
IOMMU Group 1 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:2489] (rev a1)
IOMMU Group 1 01:00.1 Audio device [0403]: NVIDIA Corporation GA104 High Definition Audio Controller [10de:228b] (rev a1)
IOMMU Group 2 00:02.0 Display controller [0380]: Intel Corporation CometLake-S GT2 [UHD Graphics 630] [8086:9bc5] (rev 05)
IOMMU Group 3 00:14.0 USB controller [0c03]: Intel Corporation Comet Lake USB 3.1 xHCI Host Controller [8086:06ed]
IOMMU Group 3 00:14.2 RAM memory [0500]: Intel Corporation Comet Lake PCH Shared SRAM [8086:06ef]
IOMMU Group 4 00:15.0 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH Serial IO I2C Controller #0 [8086:06e8]
IOMMU Group 4 00:15.1 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH Serial IO I2C Controller #1 [8086:06e9]
IOMMU Group 5 00:16.0 Communication controller [0780]: Intel Corporation Comet Lake HECI Controller [8086:06e0]
IOMMU Group 6 00:17.0 SATA controller [0106]: Intel Corporation Device [8086:06d2]
IOMMU Group 7 00:1b.0 PCI bridge [0604]: Intel Corporation Comet Lake PCI Express Root Port #17 [8086:06c0] (rev f0)
IOMMU Group 8 00:1b.4 PCI bridge [0604]: Intel Corporation Comet Lake PCI Express Root Port #21 [8086:06ac] (rev f0)
IOMMU Group 9 00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:06b8] (rev f0)
IOMMU Group 10 00:1c.4 PCI bridge [0604]: Intel Corporation Device [8086:06bc] (rev f0)
IOMMU Group 11 00:1c.5 PCI bridge [0604]: Intel Corporation Device [8086:06bd] (rev f0)
IOMMU Group 12 00:1c.6 PCI bridge [0604]: Intel Corporation Device [8086:06be] (rev f0)
IOMMU Group 13 00:1c.7 PCI bridge [0604]: Intel Corporation Device [8086:06bf] (rev f0)
IOMMU Group 14 00:1d.0 PCI bridge [0604]: Intel Corporation Comet Lake PCI Express Root Port #9 [8086:06b0] (rev f0)
IOMMU Group 15 00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:0685]
IOMMU Group 15 00:1f.4 SMBus [0c05]: Intel Corporation Comet Lake PCH SMBus Controller [8086:06a3]
IOMMU Group 15 00:1f.5 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH SPI Controller [8086:06a4]
IOMMU Group 16 03:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 [144d:a808]
IOMMU Group 17 05:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 02)
IOMMU Group 18 06:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:0612] (rev 02)
IOMMU Group 19 07:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03)
IOMMU Group 20 08:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03)
IOMMU Group 21 09:00.0 Non-Volatile memory controller [0108]: Phison Electronics Corporation E12 NVMe Controller [1987:5012] (rev 01)
root@pve:~# cat /proc/cmdline
initrd=\EFI\proxmox\5.15.104-1-pve\initrd.img-5.15.104-1-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt initcall_blacklist=sysfb_init
root@pve:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:2489,10de:228b,1987:5012,1912:0014,1b21:0612 disable_vga=1
root@pve:~# cat /etc/pve/qemu-server/100.conf
agent: 1
balloon: 0
bios: ovmf
boot: order=hostpci0
cores: 10
cpu: host
efidisk0: local-zfs:vm-100-disk-1,efitype=4m,pre-enrolled-keys=1,size=1M
hostpci0: 0000:09:00,pcie=1
hostpci1: 0000:01:00,pcie=1,x-vga=1,romfile=08G-P5-3663-KL.rom
hostpci2: 0000:08:00,pcie=1
hostpci3: 0000:07:00,pcie=1
hostpci4: 0000:06:00,pcie=1
machine: pc-q35-7.2
memory: 20480
meta: creation-qemu=6.1.1,ctime=1648601835
name: raven
net0: virtio=5E:42:11:7E:16:FA,bridge=vmbr0
numa: 0
onboot: 1
ostype: win11
scsihw: virtio-scsi-pci
smbios1: uuid=5d6ae88a-76b6-4ab0-8aac-9ae36dcb518c
sockets: 1
tablet: 0
tpmstate0: local-zfs:vm-100-disk-0,size=4M,version=v2.0
vga: none
vmgenid: f3f742fa-3520-452f-98d6-1c6c5fbb2fb5
So, I started researching general recommendations for Windows 11 VM performance on Proxmox and tried everything I found. And one of these made a big difference. I had the "Virtual Machine Platform" and "Windows Subsystem for Linux" features installed. Once I removed these and rebooted the VM... everything was back to "normal". (Maybe even better?) Just thought I would post this here in case anyone is experiencing similar problems.
Now for the real question!
I've had these features enabled since I started using this Proxomx setup. I honestly never used them, but they never caused me any issues. So, is it just that these features don't play well with the new version of Proxmox/Kernel? Or was I missing out on even more performance previously?