将晦涩难懂的技术讲的通俗易懂
发布时间:2016-03-20 17:25:05
fcntl()、lockf、flock的区别——lvyilong316 这三个函数的作用都是给文件加锁,那它们有什么区别呢?首先flock和fcntl是系统调用,而lockf是库函数。lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文件加锁的效果也是一样的。后面分析不同点时大多数情况是将fcn.........【阅读全文】
发布时间:2016-02-28 22:29:21
Bridge转发逻辑——lvyilong316本文主要介绍linux bridge的转发流程,以及bridge设计的几个hook点。首先看一张完整的转发图。下面逐一看每个函数的分析l netif_receive_skb:网卡接收函数/net/core/dev.c点击(此处)折叠或打开int netif_receive_skb(.........【阅读全文】
发布时间:2016-02-21 19:51:17
二层(链路层)数据包发送过程分析——lvyilong316 说明:本系列博文所涉及内核版本为2.6.32 当上层准备好一个包之后,交给链路层,链路层数据包发送主要通过dev_queue_xmit函数处理。数据包的发送可分为两种,一种是正常的传输流程,即通过网卡驱动,另一种是通过软中断(见注3)。为.........【阅读全文】
发布时间:2016-01-03 17:24:42
GENERIC NETLINK 介绍及使用--lvyilong316 之前一篇博文讲述了Netlink如何使用,当时我们是自己定义了一种协议NETLINK_TEST进行用户进程和内核的通信,这篇文章就讲一下如何使用内核为我们提供的NETLINK_GENERIC进行通信。 如果把N.........【阅读全文】
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设备给协议栈,最后再发送。
这里有点不太清楚如何具体的实现发送的
lvyilong3162023-06-06 15:06
zhangtongjian12:你好,请教下,“qemu和vhost-user前后端协商过程”中讲到的初始化多队列时,多队列初始化时,对应的kvm中断机制中irqfd和ioeventfd是和队列数目对应的吗?还是一个虚拟机就一个irqfd和ioeventfd?
和队列对应
回复 | 举报zhangtongjian122023-06-02 10:29
你好,请教下,“qemu和vhost-user前后端协商过程”中讲到的初始化多队列时,多队列初始化时,对应的kvm中断机制中irqfd和ioeventfd是和队列数目对应的吗?还是一个虚拟机就一个irqfd和ioeventfd?