知识卡片
固定可用环表映射规避跨核Cache迁移
内容
前端驱动和后端驱动通常运行在不同CPU核上,若可用环表表项和描述符表之间是动态映射的,每次前端更新表项,后端读取都可能触发数据在两核Cache间来回搬运,开销不小。DPDK的优化是固定这层映射——可用环表第N项永远对应描述符表第N项(发送方向固定映射到后半区),更新可用环表只需修改环表自身指针,不再涉及描述符的动态分配释放。表面看只是省了几条指令,实际收益是从根本上减少跨核Cache迁移的触发频率,还为后续用SIMD批量处理打开方便之门。
参考来源
《深入浅出DPDK》第11章《半虚拟化Virtio》