问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vhost protocol

发布网友 发布时间:2024-10-23 01:22

我来回答

1个回答

热心网友 时间:2024-11-05 03:57

本文深入探讨了Virtio网络和vhost-net协议,重点在于用QEMU实现的virtio网卡。

virtio网络设备是虚拟以太网卡,支持TX/RX多队列。接收数据包时,空缓冲区放置在RX virtqueue中,输出数据包则在TX virtqueue中进行传输。管理通信通过另一个队列完成,例如设置MAC地址或调整队列数量。此设备支持卸载功能,如计算校验和、GSO/GRO,让真实物理网络设备执行。

发送数据包时,驱动程序填充描述符,包括卸载信息和数据帧缓冲区。数据帧可以以SG形式串联成多个描述符。这些数据结构由guest中的驱动程序分配和管理,但由于设备实际在QEMU内,QEMU可以访问所有guest内存,因此设备能够定位缓冲区并读写它们。

接收数据包流程类似,唯一的区别是空缓冲区由guest预先分配,以便将接收到的数据写入这些缓冲区。

然而,QEMU实现virtio-net设备存在一些缺点,包括高昂的上下文切换成本、需要额外的任务/线程同步机制、每个报文收发需要系统调用和数据拷贝、使用ioctl发送通知以及需要额外系统调用来恢复vCPU执行。

为了解决这些问题,设计了vhost协议,它是一种基于消息的协议,允许hypervisor将数据平面卸载到更高效的组件。使用vhost API,hypervisor向handler发送内存布局、文件描述符等配置信息,卸载设备完全由handler处理,它直接访问virtqueues内存区域并直接向guest发送/接收通知。

vhost消息可以在主机本地传输协议中交换,如Unix套接字或字符设备,hypervisor和handler可以作为服务器或客户端进行通信。在这种情况下,vhost-net内核驱动程序作为handler实现vhost协议,与QEMU交互并处理数据包转发。

加载vhost-net内核驱动程序后,创建/dev/vhost-net字符设备,qemu使用ioctl调用初始化vhost-net实例,包括将hypervisor与实例关联、准备功能协商并传递guest物理内存映射。初始化期间创建名为vhost-$pid的内核线程,用于处理I/O事件,如轮询guest驱动的通知或tap事件。

使用eventfd实现通知绕过机制,vhost工作线程轮询它,当guest写入特定PCI MMIO地址触发vm-exit进入KVM时,KVM检测到关联的ioeventfd并写入fd。这避免了昂贵的QEMU进程唤醒,同时实现异步处理,无需立即上下文切换。

另外,使用irqfd实现直接vCPU中断注入机制,允许主机进程通过写入irqfd向guest注入中断,同样具备异步处理和无需立即上下文切换的优点。

值得注意的是,尽管此类更改发生在后端数据包处理中,但对仍然使用标准virtio接口的guest来说,这一变化是透明的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
山东沃尔德集团集团所辖公司介绍 齐鲁银行无忧贷和市民贷哪个好 什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 帮帮我,快写一篇老师,我想对你说。快点,很急。最好26号之前交。_百度知... 肉眼的分辨率是多少 驾考宝典是不是全国通用 给别人当代理,一件代发,上家不给顾客发货,现在顾客跟我要钱,这钱 ...我给他发货了 他不给我打钱怎么办 我知道他地址电话 发货后,对方迟迟没打钱过来,我拿什么凭证可以证明我的债权? ‘’诽‘’一拆字解一生肖。 拆字 椅 打一生肖谢谢了,大神帮忙啊 木兰诗诗词赏析 ...了8吨水,水费是12.8元.李奶奶家上个月用了10吨水,李奶奶家上个月的... ...8吨水,水费是12.8元.照这样计算,隔壁李奶奶家上个月用了10吨水... ...个月用了8吨水,水费是12.8元.李奶奶家用了10吨水,该交水费多少钱... 帮我看看我这配置 我显卡要换GTX650ti 电源是380w的够用吗 还有显卡哪 ... 我的台式电脑显卡能用GTX650IT吗? GTX650 TI 配什么电源 在线等候你们解决 ...主板 威刚1600 4G 内存 WD1T硬盘 AMD955 CPU 铭瑄GT630 显卡 还有什... 贝加尔湖是淡水湖怎么会有盐 高一地理怎样才会形成咸水湖,怎样辨别是咸水湖还是淡水湖 泰安婚介、泰安婚介、泰安那家婚介公司,信誉高、资质深、证件全??_百 ... 跪求4000元左右游戏电脑配置,至少可以最高特效顺利运行英雄联盟_百度... 为什么有些网站禁止使用右健,如何突破这个限制? 小脑萎缩会引起性格变化吗 基金签约是什么 什么是基金认购协议 赫拉防晒霜韩国价格多少 50倍和35倍哪个好 桃花源记 去哪个NPC激活神码? 2024中级消防证难不难考 中级消防员证考多少分能拿证 中级消防员证考哪些科目 消防证中级考试难度如何 建行透支卡,透支100元十天要还多少钱 建行卡透支利息怎么算的 服务业计入什么会计科目 众泰5008仪表盘上显示近光灯标志吗 服务业费用列什么科目 手机换号了还能楂出本人手机号码吗? 老婆最近和一个男同事异常亲近,不伤夫妻感情的前提下,我该怎样... 交警是属于公务员吗?当交警的条件是什么啊? ...是不是随时会被开除的呢?协警分公安协警和交警协警的吗 荣耀全明星大枪附魔什么属性