The series implements the PCI multifunction hotplug functionality.
The first two patch reverts the old commits which forbade the
multifunction addresses. Patch2 is added because the two reverts
necessiates additional checks added in Patch3.
Actual implementation starts patch 4 onwards.
The semantics is to encapsulate all the functions in <devices/>
tag as was previously explained.
(
http://www.spinics.net/linux/fedora/libvir/msg127921.html
The series aims to support virtio devices also the hostdevices
in the <devices>.
The auto addess assignment is implemented here works well
for ppc64 and pc-i440fx machines. Couldn't get it working
on q35 machines. May be follow up patches for that.
Todo:
1) Rollback the Hotplug of already hoplugged functions if any of
the function hotplug fails.
2) Hardening the hotplug checks to disallow multifunction cards
hotplug as though they are single function cards.
3) Documentation update.
4) Patch 6 may need some work across drivers to add similar
checks as added in qemu_driver.c
5) Test cases.
---
Shivaprasad G Bhat (7):
Revert "prevent hot unplugging multi function PCI device"
Release address in function granularity than slot
Validate address in virDomainPCIAddressReleaseAddr
Introduce PCI Multifunction device parser
Introduce virDomainPCIMultifunctionDeviceAddressAssign
Allow calling virHostdevPreparePCIDevices twice for same device
Enable PCI Multifunction hotplug/unplug
src/conf/domain_addr.c | 244 ++++++++++++++++++++++++++++-
src/conf/domain_addr.h | 4
src/conf/domain_conf.c | 227 +++++++++++++++++++++++++++
src/conf/domain_conf.h | 22 +++
src/libvirt_private.syms | 5 +
src/qemu/qemu_domain_address.c | 2
src/qemu/qemu_driver.c | 331 ++++++++++++++++++++++++++++++++--------
src/qemu/qemu_hotplug.c | 74 ++-------
src/util/virhostdev.c | 16 ++
9 files changed, 781 insertions(+), 144 deletions(-)
--
Signature