Features/PCIBridgeHotplug

From QEMU

Summary

ACPI based hotplug for devices behind PCI to PCI Bridges

Owner

Roadmap

Once implemented, QEMU will be able to support ACPI based hotplug and hotunplug for PCI devices behind PCI bridges. This allows use of more than 32 individually hotpluggable PCI devices. Note: ACPI doesn't support adding or removing bridges themselves by hotplug.

After QEMU 1.6

  • When started with -M 1.6, QEMU/firmware adds ACPI tables to allow hotplug/unplug of devices behind each bridge
  • When started with -M 1.5 and earlier, do not expose new ACPI tables
  • At least PIIX4 chipset should be supported. Preferably Q35 as well.

Motivation: why only native hotplug isn't sufficient

The reason is that on Windows, native hotplug is only supported with PCI Express. However, many guests need to use PCI. In particular, virtio devices are legacy PCI (not PCI Express) devices (in particular, they can not function without IO resources) and so need to reside behind PCI bridges.

Status

Patchset implementing this functionality for PIIX4 has been posted. Patchset is implemented on top of the ACPI table generation feature. See Features/ACPITableGeneration