知识卡片
vhost三代演进各自消除了什么开销
内容
virtio-net后端最初完全靠Qemu模拟:客户机发包要退出到用户态Qemu进程,Qemu再读写Tap设备,路径上有两次报文拷贝和频繁特权级切换,是最大瓶颈。内核态vhost-net把虚拟队列读写工作从Qemu搬进内核模块,报文可直接在Tap设备和虚拟队列间搬运,省去一次拷贝和上下文切换,但拷贝仍在内核态完成。用户态vhost-user再把这套逻辑挪回用户态,靠共享内存直接操作虚拟队列,绕开内核介入开销。三代演进的主线,是不断缩短”客户机数据”到”目的地”间的中间人数量。
参考来源
《深入浅出DPDK》第12章《加速包处理的vhost优化方案》