Intel Xe Driver Patches Allow For Mapping DMA-BUFs Via IOV Interconnects
([Intel] 49 Minutes Ago
Better Intel Linux SR-IOV)
- Reference: 0001587247
- News link: https://www.phoronix.com/news/Intel-Xe-Map-DMA-BUFs-IOV
- Source link:
In addition to the patches sent out this weekend by Intel for [1]Xe driver preparations for multi-device Shared Virtual Machine (multi-device SVM), another notable patch series making it out this weekend for the Intel Xe open-source kernel graphics driver is support for mapping DMA-BUFs via IOV interconnects.
This is yet another component to their work around proper SR-IOV support for their latest Arc Pro B-Series graphics cards and ensuring an optimal "Project Battlematrix" experience for multiple GPUs and supporting virtualization.
The set of patches posted overnight allow for mapping DMA-BUFs via interconnects. Beyond that initial groundwork, the patches go through with adding support for mapping DMA-BUFs with IOV interconnects to the VFIO PCI driver and the Intel Xe DRM driver. This should help with a more performant and more efficient experience for sharing of buffers in a SR-IOV virtualized environment.
[2]The patch series from Vivek Kasireddy explains:
"In a typical dma-buf use case, a dmabuf exporter makes its buffer buffer available to an importer by mapping it using DMA APIs such as dma_map_sgtable() or dma_map_resource(). However, this is not desirable in some cases where the exporter and importer are directly connected via a physical or virtual link (or interconnect) and the importer can access the buffer without having it DMA mapped.
So, to address this scenario, this patch series adds APIs to map/unmap dmabufs via interconnects and also provides a helper to identify the first common interconnect between the exporter and importer. Furthermore, this patch series also adds support for IOV interconnect in the vfio-pci driver and Intel Xe driver.
The IOV interconnect is a virtual interconnect between an SRIOV physical function (PF) and its virtual functions (VFs). And, for the IOV interconnect, the addresses associated with a buffer are shared using an xarray (instead of an sg_table) that is populated with entries of type struct range."
Great seeing their different Project Battlematrix pieces coming together for their open-source Linux driver stack.
[1] https://www.phoronix.com/news/Intel-Xe-Multi-Device-SVM-Code
[2] https://lore.kernel.org/dri-devel/20251027044712.1676175-1-vivek.kasireddy@intel.com/T/#u
This is yet another component to their work around proper SR-IOV support for their latest Arc Pro B-Series graphics cards and ensuring an optimal "Project Battlematrix" experience for multiple GPUs and supporting virtualization.
The set of patches posted overnight allow for mapping DMA-BUFs via interconnects. Beyond that initial groundwork, the patches go through with adding support for mapping DMA-BUFs with IOV interconnects to the VFIO PCI driver and the Intel Xe DRM driver. This should help with a more performant and more efficient experience for sharing of buffers in a SR-IOV virtualized environment.
[2]The patch series from Vivek Kasireddy explains:
"In a typical dma-buf use case, a dmabuf exporter makes its buffer buffer available to an importer by mapping it using DMA APIs such as dma_map_sgtable() or dma_map_resource(). However, this is not desirable in some cases where the exporter and importer are directly connected via a physical or virtual link (or interconnect) and the importer can access the buffer without having it DMA mapped.
So, to address this scenario, this patch series adds APIs to map/unmap dmabufs via interconnects and also provides a helper to identify the first common interconnect between the exporter and importer. Furthermore, this patch series also adds support for IOV interconnect in the vfio-pci driver and Intel Xe driver.
The IOV interconnect is a virtual interconnect between an SRIOV physical function (PF) and its virtual functions (VFs). And, for the IOV interconnect, the addresses associated with a buffer are shared using an xarray (instead of an sg_table) that is populated with entries of type struct range."
Great seeing their different Project Battlematrix pieces coming together for their open-source Linux driver stack.
[1] https://www.phoronix.com/news/Intel-Xe-Multi-Device-SVM-Code
[2] https://lore.kernel.org/dri-devel/20251027044712.1676175-1-vivek.kasireddy@intel.com/T/#u