[libvirt] [PATCH 0/7] PCI Multifunction device hotplug support

Shivaprasad G Bhat sbhat at linux.vnet.ibm.com
Mon May 16 18:06:36 UTC 2016


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 and also the hostdevices
in the <devices>.

Auto-address 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




More information about the libvir-list mailing list