[libvirt] [PATCH v2 0/8] PCI Multifunction device hotplug support

Shivaprasad G Bhat shivaprasadbhat at gmail.com
Wed May 18 21:28:09 UTC 2016

V1 was posted here.


Changes from V1
Fixed couple of issues in address validation and assignment.
Added Rollback of the hotplug if anything fails in between.
Removed Patch 6 completely as it exposed way too many bugs. Changed the approach
a bit by introducing 2 new patches which take care of hostdevice preparation
and help reverting.

1)  Hardening the hotplug checks to disallow multifunction cards
    hotplug as though they are single function cards.
2)  Documentation update.
3)  Test cases.
4)  Should the events be delayed till all the functions are
    hotplugged/unplugged? Something can fail and the revert may not be possible
    Or the guest may refuse to free the device. If we show events
    for those which got free, the rest of them may never be freed and also
    that may not be usable by guest if the function 0 is not part of it. Need to
    think more on this. Any suggestions ?


Shivaprasad G Bhat (8):
      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
      Separate the hostdevice preparation and checks to a new funtion
      Move the detach of PCI device to the beginnging of live hotplug
      Enable PCI Multifunction hotplug/unplug

 src/conf/domain_addr.c         |  239 ++++++++++++++++++++++++++++--
 src/conf/domain_addr.h         |    4 
 src/conf/domain_conf.c         |  236 +++++++++++++++++++++++++++++
 src/conf/domain_conf.h         |   22 +++
 src/libvirt_private.syms       |    5 +
 src/qemu/qemu_domain_address.c |    2 
 src/qemu/qemu_driver.c         |  321 ++++++++++++++++++++++++++++++++--------
 src/qemu/qemu_hotplug.c        |  161 ++++++++------------
 src/qemu/qemu_hotplug.h        |    5 +
 9 files changed, 818 insertions(+), 177 deletions(-)


More information about the libvir-list mailing list