DPDK 入门
DPDK旁路原理
原来内核协议栈的方式数据是从 网卡-->驱动-->协议栈-->socket接口-->业务
而DPDK的方式是基于UIO(Userspace I/O)旁路数据。数据从 网卡-->DPDK轮询模式-->DPDK基础库-->业务
DPDK的基石UIO
为了让驱动运行在用户态,linux提供UIO机制,使用UIO可以通过read感知中断,通过mmap实现核网卡的通讯
UIO原理
要开发用户态驱动有几个步骤:
-
开发运行在内核的UIO模块,因为硬中断只能在内核处理
-
通过/dev/uioX读取中断
-
通过mmap和外设共享内存
DKDP核心优化
DPDK的UIO驱动屏蔽了硬件发出的中断,然后在用户态采用主动轮训的方式,这种模式被称为PMD(Poll Mode Driver)
UIO 旁路了内核ÿ