vhost :
架构图:
代码目录在Linux/drivers/vhost/ 大部分用到的代码都在vhost.c文件当中。vhost-net的代码在net.c当中。
virtio-netdev关联了两个virtqueue
struct virtnet_nic {
/** Base pio register address */
unsigned long ioaddr;
/** RX/TX virtqueues */
struct vring_virtqueue *virtqueue;
/** RX packets handed to the NIC waiting to be filled in */
struct list_head rx_iobufs;
/** Pending rx packet count */
unsigned int rx_num_iobufs;
/** Virtio net packet header, we only need one */
struct virtio_net_hdr empty_header;
};参考:
http://blog.vmsplice.net/2011/09/qemu-internals-vhost-architecture.html
http://lxr.free-electrons.com/source/drivers/vhost/?v=3.2

本文介绍了vhost架构的基本概念,详细解析了Linux/drivers/vhost/目录下vhost.c及net.c文件中的关键代码,并展示了virtio-netdev如何关联两个virtqueue。通过理解这些核心组件的工作原理,读者可以更好地掌握vhost在网络虚拟化中的应用。

7559

被折叠的 条评论
为什么被折叠?



