知识卡片

减少PCIe开销的三个手法

专业/工作 · 1109.c

内容

知道瓶颈在哪之后,DPDK的优化思路很朴素:一是减少MMIO访问频度——尾指针寄存器更新代价高,与其每收一个包就更新,不如攒够一批再统一更新;二是提高单次PCIe事务的净荷——把多个16字节的描述符凑成一整个Cache Line(64字节)再传输,减少事务次数;三是避免Cache Line的部分写——DMA写入若不是整条Cache Line对齐,会触发昂贵的读-改-写合并操作,所以Mempool分配缓冲区要求按Cache Line对齐。

参考来源

《深入浅出DPDK》第6章《PCIe与包处理I/O》