This is what remains of yesterday's VFIO groups patchset that is
considered still useful, but wasn't yet ACKed (I've pushed the 5 that
were ACKed). In addition, I found a few more bugs in the
virPCIDeviceList handling and have included patches for those. There
are a couple of these that would be really nice to get into 1.0.7, one
in particular which is new functionality, but has 4 prerequisites:
The most important patch here from a functionality point of view is
PATCH 05/12, which adds the <iommuGroup> element to the output of
"virsh nodedev-dumpxml". This is essential for users/management
applications to have adequate information to know which devices need
to be detached from host drivers. (Unfortunately, all of the patches
prior to 05/12 are required for 05/12 to cleanly apply.)
The other new patch that I've been told is important is 08/12, which
supresses reset of PCI devices that were/will be assigned using VFIO -
apparently the vfio driver already resets the devices when
appropriate, so having libvirt do it is just redundant. (In order for
08/12 to operate reliably, 07/12 is required, and in order for 07/12
to apply, 06/12 must also be applied).
If someone ACKs any of these patches prior to DV cutting the first rc
and I don't respond on IRC (not sure what my schedule is in the next
12 hours :-), please feel free to push any of them you like, as long
as you push them in order with none missing from the middle.
Laine Stump (12):
pci: eliminate unused driver arg from virPCIDeviceDetach
pci: rename virPCIDeviceGetVFIOGroupDev to
virPCIDeviceGetIOMMUGroupDev
pci: make virPCIParseDeviceAddress public
pci: new iommu_group functions
nodedev: add iommuGroup to node device object
pci: eliminate repetitive path constructions in
virPCIDeviceBindToStub
pci: update stubDriver name in virPCIDeviceBindToStub
qemu: don't reset PCI devices being assigned with VFIO
pci: virPCIDeviceListAddCopy API
pci: eliminate leak in OOM condition
pci: fix dangling pointer in qemuDomainReAttachHostdevDevices
qemu: fix infinite loop in OOM error path
docs/formatnode.html.in | 63 +++-
docs/schemas/nodedev.rng | 11 +
src/conf/node_device_conf.c | 86 +++++-
src/conf/node_device_conf.h | 5 +-
src/libvirt_private.syms | 8 +-
src/node_device/node_device_udev.c | 21 +-
src/qemu/qemu_cgroup.c | 4 +-
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_hostdev.c | 52 ++--
src/qemu/qemu_hotplug.c | 5 +-
src/security/security_apparmor.c | 2 +-
src/security/security_dac.c | 4 +-
src/security/security_selinux.c | 4 +-
src/util/virpci.c | 344 +++++++++++++++++----
src/util/virpci.h | 21 +-
src/xen/xen_driver.c | 2 +-
tests/nodedevschemadata/pci_8086_10c9_sriov_pf.xml | 16 +
tests/nodedevxml2xmltest.c | 1 +
18 files changed, 553 insertions(+), 98 deletions(-)
create mode 100644 tests/nodedevschemadata/pci_8086_10c9_sriov_pf.xml
--
1.7.11.7