Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3593550
  • 博文数量: 207
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7365
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-23 18:56
个人简介

将晦涩难懂的技术讲的通俗易懂

文章分类

全部博文(207)

文章存档

2024年(10)

2023年(9)

2022年(4)

2021年(12)

2020年(8)

2019年(18)

2018年(19)

2017年(9)

2016年(26)

2015年(18)

2014年(54)

2013年(20)

发布时间:2021-10-24 18:14:46

linux tun/tap设备的实现(kennel 3.10)     TUN/TAP虚拟网络设备为用户空间程序提供了网络数据包的发送和接收能力。他既可以当做点对点设备(TUN),也可以当做以太网设备(TAP)。实际上,不仅Linux支持TUN/TAP虚拟网络设备,其他UNIX也是支持的,他们之间只有少许差别。    &nb.........【阅读全文】

阅读(2923) | 评论(0) | 转发(0)

发布时间:2017-05-20 16:42:51

linux tun/tap设备的实现(kennel 3.10)——lvyilong316(转载请注明出处)什么是tun/tap?TUN),也可以当做以太网设备(Linux支持UNIX也是支持的,他们之间只有少许差别。     TUN/TAP虚拟网络设备的原理比较简单,他在TUN/TAP虚拟网络设备的驱动程序和一个与之相关连的字符设备tun作为用.........【阅读全文】

阅读(12659) | 评论(0) | 转发(0)

发布时间:2017-05-06 20:48:53

linux tcp GSO和TSO实现——lvyilong316(注:kernel版本:linux 2.6.32)概念TSO(TCP Segmentation Offload): 是一种利用网卡来对大数据包进行自动分段,降低CPU负载的技术。 其主要是延迟分段。GSO(Generic Segmentation Offload): GSO是协议栈是否推迟分段,在发送到网卡之前判断网卡是.........【阅读全文】

阅读(11241) | 评论(0) | 转发(1)

发布时间:2017-05-04 23:53:33

Linux GSO逻辑分析——lvyilong316(转载请注明出处)GSO用来扩展之前的TSO,目前已经并入upstream内核。TSO只能支持tcp协议,而GSO可以支持tcpv4,tcpv6, udp等协议。在GSO之前,skb_shinfo(skb)有两个成员ufo_size, tso_size,分别表示udpfragmentation offloading支持的分片长度,以及tcp segmentation offlo.........【阅读全文】

阅读(10722) | 评论(0) | 转发(0)

发布时间:2016-12-13 23:17:46

netdev_rx_queue表示对应的接收队列,很多网卡硬件上已经支持多个队列,此时就会有多个netdev_rx_queue队列,这个结构是挂在net_device,初始化接收队列的函数:netif_alloc_rx_queuesnetif_alloc_rx_queuesstatic int netif_alloc_rx_queues(struct net_device *dev){/*获取接收队列.........【阅读全文】

阅读(4496) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

zf8292024-11-13 13:41

zf829:您好,请教大神一个问题,设备直通给VM时,中断到底会不会导致VM_EXIT吗,如果会,那VIRTIO直通时还会导致IO性能下降吧?“当透传设备产生中断时,vfio_msihandler ISR执行,该函数不做实际的服务程序处理,仅仅通过eventfd_signal激活irqfd_inject,然后最终调用deliver_posted_interrupt向虚机注入中断,中断号即为虚机配置透传设备时的中断号。”  这段描述在代码上我也仔细看了,逻辑肯定是对的,但另一方面我还是不确定中断到底会不会导致VM_EXIT

这里的中断主要是指数据包收发的中断

回复  |  举报

zf8292024-11-13 11:35

您好,请教大神一个问题,设备直通给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?

回复  |  举报
留言热议
请登录后留言。

登录 注册