PCI Peer-To-Peer Memory Support Queued Ahead Of Linux 4.20~5.0

Written by Michael Larabel in Hardware on 18 October 2018 at 12:00 AM EDT. 14 Comments
With the upcoming Linux 4.20 kernel cycle (that given past comments by Linus Torvalds might be renamed to Linux 5.0), a new PCI feature queued ahead of the upcoming merge window is peer-to-peer memory support.

This peer-to-peer (P2P) PCI memory support has been in the works for a while now. What this functionality is fundamentally about is supporting PCI (Express) devices that have memory mapped within their BAR space (Base Address Register) for peer-to-peer transactions. The new kernel code provides the necessary interface so other kernel subsystems can find/allocate portions of this memory as for peer-to-peer memory via P2P DMA. Peer-to-peer memory can help reduce pressure on the system RAM as memory is exchanged directly between PCIe devices.

This Linux PCI P2P memory support was originally worked on with a focus of copy offloads for NVMe fabrics so data can go directly from RDMA NICs to the peer memory and copied directly to the NVM Express solid-state storage -- completely bypassing the system memory. The downside of this approach though is possible lower throughput.

This PCI P2P DMA memory support code is queued in PCI's next tree ahead of the Linux 4.20~5.0 kernel. The concept is interesting and it will be interesting to see how it evolves in the future with other PCI Express devices.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com 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 OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week