我想知道dpdk是如何绕过内核的。用户空间应用程序如何访问NIC空间。dpdk使用什么工具访问NIC?
我知道,dpdk使用uio-pci-u-generic或igb-uio或vfio-pci驱动程序。如何连接到NIC空间。投票模式驱动程序如何知道在哪里投票?
我知道网卡的RX被重定向到dpdk环缓冲区,而不是内核环缓冲区。
最佳答案
dpdk使用uio-pci-generic或igb-uio或vfio-pci
这正是DPDK连接到NIC的方式-通过将DPDK兼容的驱动程序绑定到NIC PCI地址(在大多数情况下,例如在Mellanox中,使用RDMA)。嗯,实际上,it's you who has to bind the drivers。
然后,正如您所说,DPDK将NIC缓冲区映射到用户空间内存(hugepages)并通过PCI与NIC接口,直接“对话”到寄存器。
如果你想更深入地了解体系结构,these slides我认为做得很好。
关于c++ - NIC的TX/RX缓冲区中的数据如何传输到dpdk环形缓冲区而不是内核环形缓冲区?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56342048/