可以将从大页面内存中获取的内存的物理地址用于DMA吗?

时间:2017-09-22 12:47:56

标签: dpdk

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

以下是关于DMA的结论:

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

是吗?我在某个地方犯了一些错误吗? DMA只能用于LDD3中描述的低级存储器。我怎么能保证我的所有大页面内存都是低级内存?

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

1 个答案:

答案 0 :(得分:0)

  

巨大页面内存的phy_address可以直接用于DMA。是吗?

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

  

DMA只能用于LDD3中描述的低级内存。

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

  

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

DPDK是一个开源项目,它支持很少的架构,并且有很多驱动程序。我建议你使用其中一个驱动程序作为一个特定的平台/架构,并从那里开始。