Linux Patches Revved For User-Space Peer-To-Peer DMA Between NVMe Drives

Written by Michael Larabel in Linux Storage on 16 June 2022 at 05:30 AM EDT. Add A Comment
Being worked on since 2020 has been Linux support for user-space peer-to-peer DMA between NVMe drives and yesterday marked the latest iteration of those patches.

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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week