我想知道dpdk如何绕过内核。用户空间应用程序如何访问NIC空间。 dpdk使用什么工具访问NIC? 我知道,dpdk使用uio_pci_generic或igb_uio或vfio-pci驱动程序。这如何附加到NIC空间。轮询模式驱动程序如何知道在哪里轮询?
我知道NIC的RX重定向到dpdk环形缓冲区而不是内核环形缓冲区。
答案 0 :(得分:0)
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缓冲区映射到用户空间内存(大页),并通过PCI与NIC接口,直接“对话”到寄存器。
如果您想更深入地了解该体系结构,these slides可以做得很好。