Linux Patches Revved For User-Space Peer-To-Peer DMA Between NVMe Drives
Logan Gunthorpe continues work on this user-space P2PDMA with O_DIRECT NVMe devices. This functionality continues to work for systems without an IOMMU or both AMD and Intel IOMMU implementations are currently supported.
This patch set enables userspace P2PDMA by allowing userspace to mmap() allocated chunks of the CMB. The resulting VMA can be passed only to O_DIRECT IO on NVMe backed files or block devices. A flag is added to GUP() in Patch 14, then Patches 15 through 19 wire this flag up based on whether the block queue indicates P2PDMA support. Patches 20 through 21 enable the CMB to be mapped into userspace by mmaping the nvme char device.
There still are some issues being worked through with this code, but if user-space P2PDMA NVMe support is of interest to you, check out the latest patch series for all of the technical details.