Linux 6.19 Improves User-Space I/O "UIO" With Shared Virtual Addressing
([Linux Kernel] 6 Hours Ago
SVA For UIO)
- Reference: 0001598746
- News link: https://www.phoronix.com/news/Linux-6.19-char-misc
- Source link:
Merged a few days ago for the ongoing Linux 6.19 merge window were all of the "char/misc" updates. A lot of random changes throughout this time from the Industrial I/O "IIO" drivers to an interesting new feature for User-Space I/O "UIO" for PCI/PCIe devices.
Linux's User-Space I/O functionality via the "uio_pci_generic" kernel module allows for PCI/PCIe devices to be interacted with via a user-space driver rather than relying on a hardware-specific kernel driver. This can fill some interesting use-cases and outlined via the UIO documentation on [1]kernel.org .
With Linux 6.19 there is a new UIO driver: uio_pci_generic_sva. This driver allows supporting Shared Virtual Addressing (SVA) on IOMMU-backed Linux systems. This new driver allows for PCI devices to directly use user-space virtual addresses for DMA operations to eliminate the need for explicit IOVA mapping or bounce buffers, the patch notes.
User-space applications can then perform zero-copy Direct Memory Access (DMA) using native pointers.
This new uio_pci_generic_sva driver providing SVA support for PCI/PCIe devices with UIO was worked on by the Beijing Institute of Open Source Chip "BOSC".
The char/misc pull for Linux 6.19 also adds interconnect provider driver support for the Qualcomm Snapdragon 8 Elite Gen 5 "Kaanapali" SoC, the Analog Devices max14001 IIO driver, Strix 10 driver updates, and many other device specific driver additions. See [2]this Git pull for all the details.
[1] https://www.kernel.org/doc/html/v4.11/driver-api/uio-howto.html
[2] https://lore.kernel.org/lkml/aTTOKMF9GFq0A1Bh@kroah.com/
Linux's User-Space I/O functionality via the "uio_pci_generic" kernel module allows for PCI/PCIe devices to be interacted with via a user-space driver rather than relying on a hardware-specific kernel driver. This can fill some interesting use-cases and outlined via the UIO documentation on [1]kernel.org .
With Linux 6.19 there is a new UIO driver: uio_pci_generic_sva. This driver allows supporting Shared Virtual Addressing (SVA) on IOMMU-backed Linux systems. This new driver allows for PCI devices to directly use user-space virtual addresses for DMA operations to eliminate the need for explicit IOVA mapping or bounce buffers, the patch notes.
User-space applications can then perform zero-copy Direct Memory Access (DMA) using native pointers.
This new uio_pci_generic_sva driver providing SVA support for PCI/PCIe devices with UIO was worked on by the Beijing Institute of Open Source Chip "BOSC".
The char/misc pull for Linux 6.19 also adds interconnect provider driver support for the Qualcomm Snapdragon 8 Elite Gen 5 "Kaanapali" SoC, the Analog Devices max14001 IIO driver, Strix 10 driver updates, and many other device specific driver additions. See [2]this Git pull for all the details.
[1] https://www.kernel.org/doc/html/v4.11/driver-api/uio-howto.html
[2] https://lore.kernel.org/lkml/aTTOKMF9GFq0A1Bh@kroah.com/