
不同使用場景下的 DMA 地址總結(jié)如下使用場景DMA 地址設(shè)備眼中的真實身份數(shù)據(jù)流經(jīng)的物理路徑Device ? Host (無 IOMMU)主機(jī)系統(tǒng) RAM 的物理地址Device → PCIe Switch → CPU Root Port →System RAMDevice ? Host (有 IOMMU)IOMMU 映射的虛擬地址 (IOVA)Device → PCIe Switch →IOMMU (翻譯)→ System RAMDevice A → Device B (P2P)Device B 的 PCIe BAR 空間地址Device A → PCIe Switch →Device B (直接路由)RDMA (遠(yuǎn)端 ? 本端 Host)經(jīng)由 RDMA 網(wǎng)卡硬件二次轉(zhuǎn)換的本地內(nèi)存標(biāo)識遠(yuǎn)端網(wǎng)卡 → 網(wǎng)絡(luò) → 本端網(wǎng)卡 → 本地 DMA 邏輯 → System RAM在 P2P 場景中一個設(shè)備需要知道另一個設(shè)備 BAR 的 PCIe 總線地址才能直接訪問這時應(yīng)使用 pci_bus_address() 函數(shù)獲得設(shè)備的 PCIe 總線地址。