Why libvirt supports only 14 PCIe hotplugged devices on x86-64

libvirt is a Linux daemon used for virtualization that can start and manage virtual machines. Surprisingly, these VMs have a limitation of only supporting up to 14 hotpluggable PCIe slots. This number seems arbitrary, but it dates back to the 1970s when Intel developed the Intel 8008 CPU, which had 8 I/O ports. This design choice carried on to subsequent CPUs, including the Intel 8086 which expanded the I/O ports to 65536. The fixed I/O address space has caused the limitation on the number of PCIe slots in modern PCs. While QEMU has an option to bypass this limitation, libvirt does not plan to address or fix it. To have more than 14 PCIe slots in a VM, users will have to use QEMU directly.


To top