[PATCH V2 00/18] vhost-vDPA multiqueue

Jason Wang posted 18 patches 2 years, 10 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
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(-)
[PATCH V2 00/18] vhost-vDPA multiqueue
Posted by Jason Wang 2 years, 10 months ago
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.

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

-- 
2.25.1


Re: [PATCH V2 00/18] vhost-vDPA multiqueue
Posted by Jason Wang 2 years, 9 months ago
在 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


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


Re: [PATCH V2 00/18] vhost-vDPA multiqueue
Posted by Michael S. Tsirkin 2 years, 9 months ago
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(-)
> > 


Re: [PATCH V2 00/18] vhost-vDPA multiqueue
Posted by Jason Wang 2 years, 9 months ago
在 2021/7/12 下午1:44, Jason Wang 写道:
>
> 在 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.


Hi Michael:

So we miss the soft freeze, want to know if the series is fine from your 
side, and if you'd like to merge them (for 6.2 probably?).

Thanks