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(-)
> >