News: 0001587247

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Intel Xe Driver Patches Allow For Mapping DMA-BUFs Via IOV Interconnects

([Intel] 49 Minutes Ago Better Intel Linux SR-IOV)


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



Cleanliness becomes more important when godliness is unlikely.
-- P. J. O'Rourke