当我阅读dpdk的代码时,我很困惑。
以下是关于DMA的结论:
在调用pci_set_dma_mask()和pci_set_consistent_dma_mask()以保证PCI_NIC可以寻址指定的位长度之后,巨页内存的phy_address可以直接用于DMA。
是吗?我在某个地方犯了一些错误吗? DMA只能用于LDD3中描述的低级存储器。我怎么能保证我的所有大页面内存都是低级内存?
你能给我一些建议吗?谢谢。
答案 0 :(得分:0)
巨大页面内存的phy_address可以直接用于DMA。是吗?
这是每个mbuf中物理地址的主要目的。
DMA只能用于LDD3中描述的低级内存。
事实上它依赖于系统和设备。
我怎么能保证我的所有巨页内存都是低级内存? 你能给我一些建议吗?
DPDK是一个开源项目,它支持很少的架构,并且有很多驱动程序。我建议你使用其中一个驱动程序作为一个特定的平台/架构,并从那里开始。