All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 00/21] vhost-vDPA multiqueue
@ 2021-09-03  9:10 Jason Wang
  2021-09-03  9:10 ` [PATCH V2 01/21] vhost-vdpa: remove unused variable "acked_features" Jason Wang
                   ` (20 more replies)
  0 siblings, 21 replies; 29+ messages in thread
From: Jason Wang @ 2021-09-03  9:10 UTC (permalink / raw)
  To: mst, jasowang, qemu-devel; +Cc: eperezma, elic, gdawar, lingshan.zhu, lulu

Hi All:

This patch implements the multiqueue support for vhost-vDPA. The most
important requirement si 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. This means the control
virtqueue will bypass the Qemu. With the control virtqueue, vhost-vDPA
are extend to support creating and destroying multiqueue queue pairs
plus the control virtqueue.

For the future, if we want to support live migration, we can either do
shadow cvq on top or introduce new interfaces for reporting device
states.

Tests are done via the vp_vdpa driver in L1 guest.

Changes since V1:

- start and stop vhost devices when all queues were setup
- fix the case when driver doesn't support MQ but device support
- correctly set the batching capability to avoid a map/unmap storm
- various other tweaks

Please reivew.

Thanks

Jason Wang (21):
  vhost-vdpa: remove unused variable "acked_features"
  vhost-vdpa: correctly return err in vhost_vdpa_set_backend_cap()
  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
  vhost: record the last virtqueue index for the virtio device
  virtio-net: vhost control virtqueue support
  vhost-vdpa: multiqueue support

 hw/net/vhost_net.c             |  60 ++++++++----
 hw/net/virtio-net.c            | 165 ++++++++++++++++++---------------
 hw/virtio/vhost-vdpa.c         |  58 ++++++++++--
 include/hw/virtio/vhost-vdpa.h |   1 +
 include/hw/virtio/vhost.h      |   4 +-
 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               | 157 ++++++++++++++++++++++++-------
 12 files changed, 342 insertions(+), 146 deletions(-)

-- 
2.25.1



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2021-09-06  6:57 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-03  9:10 [PATCH V2 00/21] vhost-vDPA multiqueue Jason Wang
2021-09-03  9:10 ` [PATCH V2 01/21] vhost-vdpa: remove unused variable "acked_features" Jason Wang
2021-09-03  9:10 ` [PATCH V2 02/21] vhost-vdpa: correctly return err in vhost_vdpa_set_backend_cap() Jason Wang
2021-09-03  9:10 ` [PATCH V2 03/21] vhost_net: remove the meaningless assignment in vhost_net_start_one() Jason Wang
2021-09-03  9:10 ` [PATCH V2 04/21] vhost: use unsigned int for nvqs Jason Wang
2021-09-03  9:10 ` [PATCH V2 05/21] vhost_net: do not assume nvqs is always 2 Jason Wang
2021-09-03  9:10 ` [PATCH V2 06/21] vhost-vdpa: remove the unnecessary check in vhost_vdpa_add() Jason Wang
2021-09-03  9:10 ` [PATCH V2 07/21] vhost-vdpa: don't cleanup twice " Jason Wang
2021-09-03  9:10 ` [PATCH V2 08/21] vhost-vdpa: fix leaking of vhost_net " Jason Wang
2021-09-03  9:10 ` [PATCH V2 09/21] vhost-vdpa: tweak the error label " Jason Wang
2021-09-03  9:10 ` [PATCH V2 10/21] vhost-vdpa: fix the wrong assertion in vhost_vdpa_init() Jason Wang
2021-09-03  9:10 ` [PATCH V2 11/21] vhost-vdpa: remove the unncessary queue_index assignment Jason Wang
2021-09-03  9:10 ` [PATCH V2 12/21] vhost-vdpa: open device fd in net_init_vhost_vdpa() Jason Wang
2021-09-04 20:41   ` Michael S. Tsirkin
2021-09-03  9:10 ` [PATCH V2 13/21] vhost-vdpa: classify one time request Jason Wang
2021-09-03  9:10 ` [PATCH V2 14/21] vhost-vdpa: prepare for the multiqueue support Jason Wang
2021-09-03  9:10 ` [PATCH V2 15/21] vhost-vdpa: let net_vhost_vdpa_init() returns NetClientState * Jason Wang
2021-09-03  9:10 ` [PATCH V2 16/21] net: introduce control client Jason Wang
2021-09-03  9:10 ` [PATCH V2 17/21] vhost-net: control virtqueue support Jason Wang
2021-09-04 20:40   ` Michael S. Tsirkin
2021-09-06  3:43     ` Jason Wang
2021-09-03  9:10 ` [PATCH V2 18/21] virito-net: use "qps" instead of "queues" when possible Jason Wang
2021-09-04 20:42   ` Michael S. Tsirkin
2021-09-06  3:42     ` Jason Wang
2021-09-06  5:49       ` Michael S. Tsirkin
2021-09-06  6:54         ` Jason Wang
2021-09-03  9:10 ` [PATCH V2 19/21] vhost: record the last virtqueue index for the virtio device Jason Wang
2021-09-03  9:10 ` [PATCH V2 20/21] virtio-net: vhost control virtqueue support Jason Wang
2021-09-03  9:10 ` [PATCH V2 21/21] vhost-vdpa: multiqueue support Jason Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.