将晦涩难懂的技术讲的通俗易懂
发布时间:2018-03-17 16:10:55
Linuxhugepage使用与实现——lvyilong3161.1 引言随着计算需求规模的不断增大,应用程序对内存的需求也越来越大。为了实现虚拟内存管理机制,操作系统对内存实行分页管理。自内存“分页机制”提出之始,内存页面的默认大小便被设置为 4096 字节(4KB),虽然原则上内存页面大小是可配置的,但绝大多.........【阅读全文】
发布时间:2018-03-10 22:47:51
virtio前后端配合限速分析——lvyilong316在VIRTIO中,有个一个设备的特性叫做VIRTIO_RING_F_EVENT_IDX,这个特性是用来对前后端速率进行匹配限速的。我们知道avail ring,这个ring有两个用途,一是发送侧(send queue)前端驱动发送报文的时,将待发送报文加入avail ring等待后端的处理,后端处理完后,会将其放入.........【阅读全文】
发布时间:2018-03-04 23:00:31
mergeable对接收端(guest)的影响——lvyilong316这里在分析一下guset内部对于开启mergeable接收会有什么影响,顺便分析一下开启GUEST_GSO/GUEST_TSO时,guset内部的接收流程。首先我们从vhost-user,发送端分析一下,两种情况是如何更新used->ring的。l 开启GUEST_GSO/GUEST_TSO (不开启me.........【阅读全文】
发布时间:2018-02-04 11:04:11
vhost_user desc chain的形成——lvyilong316 在前面分析vhost_usermergeable特性的时候,我们提到了一个”desc chain”的概念。本节重点分析一下这个chain是如何建立的。所谓desc chain即各个desc通过其next成员相互关联,但前提是desc->falg被设置了VRING_DESC_F_NEXT,只有这种情况nex.........【阅读全文】
发布时间:2018-01-23 23:33:57
vhost_user mergeable 特性——lvyilong316vhost_user在收包时(将数据包发往vm内部)会调用rte_vhost_enqueue_burst函数,这个函数的实现如下:l virtio_dev_merge_rx点击(此处)折叠或打开static inline uint32_t __attribute__((always_inline))vir.........【阅读全文】
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?