0

当我阅读 dpdk 的代码时,我很困惑。

以下是我对 DMA 的结论:

在调用 pci_set_dma_mask() 和 pci_set_consistent_dma_mask() 以保证 PCI_NIC 可以寻址指定的位长度后,可以直接将大页内存的 phy_address 用于 DMA。

那正确吗?我在某个地方犯了一些错误吗?DMA 只能在 LDD3 中描述的低级存储器上使用。我怎么能保证我所有的hugepage内存都是低级内存?</p>

你能给我一些建议吗?谢谢。

4

1 回答 1

0

大页内存的 phy_address 可以直接用于 DMA。那正确吗?

这是每个mbuf中物理地址的主要目的。

DMA 只能在 LDD3 中描述的低级存储器上使用。

事实上,它依赖于系统和设备。

我怎么能保证我所有的大页内存都是低级内存?你能给我一些建议吗?

DPDK 是一个开源项目,它支持的架构很少,驱动程序也很多。我建议您将其中一个用于特定平台/架构的驱动程序作为示例,然后从那里开始。

于 2017-09-22T16:40:12.470 回答