Important Notice on Device Driver Management

The xiRAID Opus user space device driver works on the top of one of the following standard OS drivers: uio_pci_generic and vfio-pci. OS usually uses other driver by default. This is the reason to change the device driver during attachment.

The vfio-pci driver is preferable and used if both uio_pci_generic and vfio-pci drivers are available on the host OS. However, the vfio-pci driver has important limitation – the driver can be changed only for all devices in the same IOMMU group simultaneously. Therefore, if a user attach one of the devices in the IOMMU group to the xiRAID Opus, the device driver for all other devices in that group will be changed as well. See the picture below for details:
Figure 1. Figure 5. Attach devices located in the same IOMMU group

Here, after attach command is executed for device1 the driver is updated for both device1 and device2 as they are in the same IOMMU group. However, only the drive(s) allocated on device1 can be accessed by xiRAID Opus. Device1 has SPDK status, while the status of the device2 is US. As soon as the attach is executed for device2, drive(s) allocated on the device2 also become available for the xiRAID Opus. Device2 driver is not updated again as it was already updated on previous attach step.

The same algorithm in reverse order work for detach case. If a user has several devices in the same IOMMU group then the driver will be updated to OS driver only after all devices in that group are detached. See the picture below for details:
Figure 2. Figure 6: Detach devices located in the same IOMMU group


The allocation of devices along IOMMU groups, the number of groups and groups sizes are hardware dependent and can’t be managed by the DM.