PCI Peer-To-Peer Memory Support Queued Ahead Of Linux 4.20~5.0
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.
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.
14 Comments