We want to use more than 200+ device. Libvirt does not use multi
function PCI device and PCI-to-PCI bridge. So we can not use more
than 200+ device if it's a PCI device or it's controller is a PCI
device.
This patchset adds the support of multi function PCI device. It
does not support to hot plug/unplug multi function PCI device.
Change log:
v1 -> v2:
1. split the patch, and it will be easily to review
2. Auto assign a slot not a function if user does not specify the address.
Wen Congyang (7):
check whether qemu supports multi function PCI device
prevent hot unplugging multi function PCI device
the key of hash table should include the function value
Reimplement qemuDomainPCIAddressReserveSlot(): reserve all functions
in the slot
assign the whole slot to the PCI device that has no address
the hotplugged PCI device should use the whole slot
support multifunction PCI device
src/conf/domain_conf.c | 3 +
src/qemu/qemu_capabilities.c | 5 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 151 +++++++++++++++++++++++++++++++++++++-----
src/qemu/qemu_command.h | 5 ++
src/qemu/qemu_hotplug.c | 76 +++++++++++++++++++--
tests/qemuhelptest.c | 3 +-
7 files changed, 218 insertions(+), 26 deletions(-)