virtio-net - 网络半虚拟化
virtio-net 一套网络半虚拟化驱动+设备的方案。
guest 里面安装的virtio-net的driver,qemu里加载virtio-net的设备。qemu使用kvm版本的,
然后与内核通过tap虚拟设备通信。
上图盗图自redhat网站。图中有mmap的映射将vring映射到host用户态,并发送到tap设备。通知路径走的kvm。
这里有个开销是kvm要进行 vmexit操作,将vm 切出cpu。
vhost-net
改进版本使用vhost框架的vhost-net,则更加高效:
改成用vhost-net,减少vmexit,vhost会启动内核线程,负责处理guest的数据。这里guest的vring也直接映射到了host,但是映射到了内核态,比较高效。
(TODO)
vhost框架
引用
发布于 2020-02-06 21:23