News: 0001598746

  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)

Linux 6.19 Improves User-Space I/O "UIO" With Shared Virtual Addressing

([Linux Kernel] 6 Hours Ago SVA For UIO)


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/



You have an ability to sense and know higher truth.