On Mon, Jul 12, 2021 at 01:44:45PM +0800, Jason Wang wrote: > > 在 2021/7/6 下午4:26, Jason Wang 写道: > > Hi All: > > > > This patch implements the multiqueue support for vhost-vDPA. The most > > important requirement the control virtqueue support. The virtio-net > > and vhost-net core are tweak to support control virtqueue as if what > > data queue pairs are done: a dedicated vhost_net device which is > > coupled with the NetClientState is intrdouced so most of the existing > > vhost codes could be reused with minor changes. With the control > > virtqueue, vhost-vDPA are extend to support creating and destroying > > multiqueue queue pairs plus the control virtqueue. > > > > Tests are done via the vp_vdpa driver in L1 guest plus vdpa simulator > > on L0. > > > > Please reivew. > > > If no objection, I will queue this for 6.1. > > Thanks
Just to make sure I understand, this basically works by passing the cvq through to the guest right? Giving up on maintaining the state in qemu. > > > > > Changes since V1: > > > > - validating all features that depends on ctrl vq > > - typo fixes and commit log tweaks > > - fix build errors because max_qps is used before it is introduced > > > > Thanks > > > > Jason Wang (18): > > vhost_net: remove the meaningless assignment in vhost_net_start_one() > > vhost: use unsigned int for nvqs > > vhost_net: do not assume nvqs is always 2 > > vhost-vdpa: remove the unnecessary check in vhost_vdpa_add() > > vhost-vdpa: don't cleanup twice in vhost_vdpa_add() > > vhost-vdpa: fix leaking of vhost_net in vhost_vdpa_add() > > vhost-vdpa: tweak the error label in vhost_vdpa_add() > > vhost-vdpa: fix the wrong assertion in vhost_vdpa_init() > > vhost-vdpa: remove the unncessary queue_index assignment > > vhost-vdpa: open device fd in net_init_vhost_vdpa() > > vhost-vdpa: classify one time request > > vhost-vdpa: prepare for the multiqueue support > > vhost-vdpa: let net_vhost_vdpa_init() returns NetClientState * > > net: introduce control client > > vhost-net: control virtqueue support > > virito-net: use "qps" instead of "queues" when possible > > virtio-net: vhost control virtqueue support > > vhost-vdpa: multiqueue support > > > > hw/net/vhost_net.c | 48 +++++++--- > > hw/net/virtio-net.c | 165 ++++++++++++++++++--------------- > > hw/virtio/vhost-vdpa.c | 55 ++++++++++- > > include/hw/virtio/vhost-vdpa.h | 1 + > > include/hw/virtio/vhost.h | 2 +- > > include/hw/virtio/virtio-net.h | 5 +- > > include/net/net.h | 5 + > > include/net/vhost_net.h | 7 +- > > net/net.c | 24 ++++- > > net/tap.c | 1 + > > net/vhost-user.c | 1 + > > net/vhost-vdpa.c | 156 ++++++++++++++++++++++++------- > > 12 files changed, 332 insertions(+), 138 deletions(-) > >