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