Skip to content
A curve rising from 36 percent of bare metal at queue depth 1 to within a few percent by queue depth 32

PCIe Passthrough Performance on Proxmox VE — The IOMMU Tax and How to Minimise It

Why PCIe devices lose throughput when passed through to a VM via VFIO, and the practical tuning steps that claw most of it back.

7th August 2026 Â· 19 min Â· 3994 words Â· Damien Dye
Two CPU sockets with a DMA path crossing the inter-socket link between them

NUMA Alignment on Proxmox VE — Why It Matters and How to Get It Right

On multi-socket systems, a VM with its vCPUs on one NUMA node and its passed-through device on another loses 20–30% throughput before you’ve even looked at anything else.

7th August 2026 Â· 9 min Â· 1758 words Â· Damien Dye
A latency-percentile curve that stays flat to p90 then climbs steeply, beside one that stays flat

PCIe ASPM and Why You Should Disable It for Passthrough

Active State Power Management saves a few watts on idle PCIe links. Under VFIO passthrough, it adds latency jitter that’s hard to diagnose and easy to fix.

7th August 2026 Â· 8 min Â· 1661 words Â· Damien Dye
The same 4 KB payload drawn as 32 packets at MPS 128 and 8 packets at MPS 512

PCIe MaxPayloadSize — A Free Performance Win for Passthrough

QEMU’s virtual root complex defaults to 128-byte TLP payloads. Most devices support 256 or 512. One kernel parameter fixes it.

7th August 2026 Â· 7 min Â· 1400 words Â· Damien Dye
A flat 1996-era PCI bus beside a 2007-era PCIe root complex

Always Use Q35, Not i440fx — Why It Matters on Proxmox VE

The two QEMU virtual chipsets are not interchangeable. Q35 provides a proper PCIe topology that passthrough, modern Windows, and the wider KVM ecosystem all depend on.

7th August 2026 Â· 11 min Â· 2245 words Â· Damien Dye