Hi all, I was trying to understand the vhost_net flow under qemu (qemu-ppc). So, I had added few print statements to the code after which I noticed that although vhost_virtqueue_init() is been called, vhost_virtqueue_start() is not getting called . The following is the code flow for calling vhost_virtqueue_start()
Under virtio_net.c->virtio_net_vhost_status()->vhost_net_start(defined in vhost_net.c)->vhost_dev_start()->vhost_virtqueue_start() Virtio_net_vhost_status () is been called from virtio_net_set_status() in the virtio_net.c . What I observed is that virtio_net_vhost_status() is returning after checking the following condition: if (n->nic->nc.peer->info->type != NET_CLIENT_OPTIONS_KIND_TAP) After adding few more print statements, I can see that the value of n->nic->nc.peer->info->type is 8 which corresponds to NET_CLIENT_OPTIONS_KIND_HUBPORT and vhost->started flag is always set to 0 . I had added few print statements in tap.c just to check if it's been initialized or not but it is getting initialized . Regards Nitesh Narayan Lal