Skip to the content.

p2pdma

https://lwn.net/Articles/767281/

device zone ?

【研究综述】浅谈GPU通信和PCIe P2P DMA - 函谷叨客的文章 - 知乎 https://zhuanlan.zhihu.com/p/430101220

https://www.usenix.org/conference/atc17/technical-sessions/presentation/bergman

这个也需要看看了: Documentation/driver-api/pci/p2pdma.rst

https://developer.nvidia.com/gpudirect

https://lpc.events/event/2/contributions/136/attachments/164/379/p2pdma__why_how_what_.pdf

问问 ai

drivers/pci/p2pdma.c:1074 是内核里“PCIe peer-to-peer DMA”的基础设施。它主要解决两件事:

  1. GPU 和 RNIC 这两个 PCIe 设备之间,P2P DMA 能不能走。
  2. 如果能走,DMA 地址该怎么编程,是直接用 bus address,还是经 host bridge / IOMMU 走普通 DMA 映射。

“RDMA 直接发送 GPU 显存”还多了一层:GPU 显存得先被导出成 RDMA 能注册的对象。主线里主要是两条路:

关键边界是:普通 ibv_reg_mr() 那条 ib_umem_get() 路径并不等于这个。 它走 FOLL_LONGTERM,drivers/infiniband/core/umem.c:164;而 GUP 默认会拒绝 PCI_P2PDMA 页,mm/gup.c:140。所以普通用户页注册,不会自动变成“GPU 显存 P2P RDMA”。

一句话总结:p2pdma.c 是“判路和映射层”,不是“GPU 显存注册层”。RDMA 直发 GPU 显存要靠 dma-buf 或 HMM/ODP 把显存暴露出来,而 p2pdma.c 决定这条 GPU<->RNIC 的 PCIe DMA 路到底能不能成立、该怎么映射。

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。