Lines Matching full:group
69 IOMMU API therefore supports a notion of IOMMU groups. A group is
73 While the group is the minimum granularity that must be used to
85 The user needs to add a group into the container for the next level
87 group associated with the desired device. This can be done using
90 VFIO group will appear for the group as /dev/vfio/$GROUP, where
91 $GROUP is the IOMMU group number of which the device is a member.
92 If the IOMMU group contains multiple devices, each will need to
93 be bound to a VFIO driver before operations on the VFIO group
96 group available, but not that particular device). TBD - interface
99 Once the group is ready, it may be added to the container by opening
100 the VFIO group character device (/dev/vfio/$GROUP) and using the
104 be set to the same container. If a group fails to set to a container
108 With a group (or groups) attached to a container, the remaining
111 device within a group using an ioctl on the VFIO group file descriptor.
126 This device is therefore in IOMMU group 26. This device is on the
128 group::
132 Binding this device to the vfio-pci driver creates the VFIO group
133 character devices for this group::
140 Now we need to look at what other devices are in the group to free
153 need to add device 0000:06:0d.1 to the group following the same
159 The final step is to provide the user with access to the group if
167 group and can access them as follows::
169 int container, group, device, i;
185 /* Open the group */
186 group = open("/dev/vfio/26", O_RDWR);
188 /* Test the group is viable and available */
189 ioctl(group, VFIO_GROUP_GET_STATUS, &group_status);
192 /* Group is not viable (ie, not all devices bound for vfio) */
194 /* Add the group to the container */
195 ioctl(group, VFIO_GROUP_SET_CONTAINER, &container);
213 device = ioctl(group, VFIO_GROUP_GET_DEVICE_FD, "0000:06:0d.0");
298 1) On older systems (POWER7 with P5IOC2/IODA1) only one IOMMU group per
300 one table per a IOMMU group which is a Partitionable Endpoint (PE)
347 /* Add the group to the container */
348 ioctl(group, VFIO_GROUP_SET_CONTAINER, &container);
372 device = ioctl(group, VFIO_GROUP_GET_DEVICE_FD, "0000:06:0d.0");
387 * PE, and put child devices belonging to same IOMMU group to the
508 IOMMU driver to group multi-function PCI devices together