将晦涩难懂的技术讲的通俗易懂
标题 | 阅读 | 评论 | 转发 | 发布日期 | |
---|---|---|---|---|---|
【推荐】 为什么df和du所查看到的已使用的磁盘容量不同? | 8971 | 2 | 6 | 2014-06-09 | |
【推荐】 彻底学会使用epoll(三)——ET的读操作实例分析 | 14185 | 2 | 14 | 2014-06-06 | |
【推荐】 TIME_WAIT状态引起的服务端重启失败问题 | 7181 | 0 | 1 | 2014-06-03 | |
【推荐】 彻底学会使用epoll(二)——ET和LT的触发方式 | 14747 | 0 | 11 | 2014-06-03 | |
【推荐】 sprintf和sscanf做了什么 | 5929 | 0 | 2 | 2014-05-28 | |
【推荐】 C++中两个类相互包含的求解策略 | 6995 | 0 | 1 | 2014-05-28 | |
【推荐】 彻底学会使用epoll(一)——ET模式实现分析 | 58022 | 3 | 20 | 2014-05-26 | |
【推荐】 C++中enum的大小 | 14603 | 4 | 0 | 2014-05-22 | |
【推荐】 从RTTI谈C++的向下转型 | 6313 | 1 | 1 | 2014-05-13 | |
【推荐】 从select的一个死循环谈epoll的ET模式 | 6038 | 2 | 7 | 2014-05-12 | |
【推荐】 理清Linux中的各种用户ID关系 | 5562 | 1 | 4 | 2014-05-07 | |
【推荐】 poll&&epoll实现分析(二)——epoll实现 | 19156 | 8 | 19 | 2014-05-05 | |
【推荐】 poll&&epoll实现分析(一)——poll实现 | 9710 | 3 | 13 | 2014-05-04 | |
【推荐】 fgets、gets与fputs、puts | 3852 | 0 | 0 | 2014-05-04 | |
Epoll模型详解 | 10977 | 0 | 8 | 2014-04-29 | |
unsigned和signed | 3625 | 0 | 2 | 2014-04-22 | |
“C”中的算数转换 | 3593 | 0 | 3 | 2014-04-21 | |
C的“类型提升” | 3881 | 0 | 3 | 2014-04-21 | |
最长单调递增子序列 | 4187 | 0 | 1 | 2014-04-18 | |
同余定理 | 3717 | 0 | 0 | 2014-04-15 |
zf8292024-11-13 13:41
zf829:您好,请教大神一个问题,设备直通给VM时,中断到底会不会导致VM_EXIT吗,如果会,那VIRTIO直通时还会导致IO性能下降吧?“当透传设备产生中断时,vfio_msihandler ISR执行,该函数不做实际的服务程序处理,仅仅通过eventfd_signal激活irqfd_inject,然后最终调用deliver_posted_interrupt向虚机注入中断,中断号即为虚机配置透传设备时的中断号。” 这段描述在代码上我也仔细看了,逻辑肯定是对的,但另一方面我还是不确定中断到底会不会导致VM_EXIT
这里的中断主要是指数据包收发的中断
回复 | 举报lemon222024-10-09 22:34
你好,有个关于实现方面的问题:当协议栈收到来自app的数据(如ping)时,会发给tun设备,然后又被发送给vpn程序,程序对其进行加密或者一些处理之后,要发送出去,这里是通过什么方式发送出去的呢?我看你关于itun/tap的文章中写的是通过socket发送给协议栈,然后自动给物理网卡后发送出去,实现来说,就是直接用socket与下一跳建立连接,然后代码用socket发送吗?那这样是不是不会再次经过TUN设备了?因为我看好像有的原理写的是再次写入到tun设备,然后tun设备给协议栈,最后再发送。
这里有点不太清楚如何具体的实现发送的