知识卡片

Indirect描述符压缩固定描述符占用

专业/工作 · 1114.b

内容

发送一个包本来至少需要两个描述符(一个指向包数据,一个指向额外的virtio net header),巨型帧涉及多个mbuf时需要更多描述符。Indirect特性让虚拟队列里的描述符不再直接指向数据,而是指向驱动额外分配的一块”间接描述符表”内存,表里再放真正指向header和各数据区域的描述符、并用链表串起来。这样无论单帧还是巨型帧,虚拟队列本身消耗的描述符永远只有一个——用一层间接寻址,把随包大小浮动的描述符占用压缩成固定的一个,减少虚拟队列资源争用。

参考来源

《深入浅出DPDK》第11章《半虚拟化Virtio》