On Tue, Jun 25, 2013 at 06:40:09PM -0400, Laine Stump wrote:
Any device which belongs to an "IOMMU group" (used by vfio)
will
have links to all devices of its group listed in
/sys/bus/pci/$device/iommu_group/devices;
/sys/bus/pci/$device/iommu_group is actually a link to
/sys/kernel/iommu_groups/$n, where $n is the group number (there
will be a corresponding device node at /dev/vfio/$n once the
devices are bound to the vfio-pci driver)
The following functions are added:
virPCIDeviceGetIOMMUGroupList
Gets a virPCIDeviceList with one virPCIDeviceList for each device
in the same IOMMU group as the provided virPCIDevice (a copy of the
original device object is included in the list.
virPCIDeviceAddressIOMMUGroupIterate
Calls the function @actor once for each device in the group that
contains the given virPCIDeviceAddress.
virPCIDeviceAddressGetIOMMUGroupAddresses
Fills in a virPCIDeviceAddressPtr * with an array of
virPCIDeviceAddress, one for each device in the iommu group of the
provided virPCIDeviceAddress (including a copy of the original).
virPCIDeviceAddressGetIOMMUGroupNum
Returns the group number as an int (a valid group number will always
be 0 or greater). If there is no iommu_group link in the device's
directory (usually indicating that vfio isn't loaded), -2 will be
returned. On any real error, -1 will be returned.
---
changes from v2:
1) rename functions for consistency
2) set errno=0 prior to each call to readdir, and check for non-zero
errno at the end.
3) remove some braces.
Everything else in the series of 12 was ACKed, and all but this and
the patch that adds the <iommuGroup> element to the nodedev-dumpxml
output have been pushed.
src/libvirt_private.syms | 4 +
src/util/virpci.c | 223 +++++++++++++++++++++++++++++++++++++++++++++++
src/util/virpci.h | 15 +++-
3 files changed, 239 insertions(+), 3 deletions(-)
ACK
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|