The code used to limit the maximum size of tx queue for others backends
than vhost_user since the introduction of configurable tx queue size in
9b02e1618cf2 ("virtio-net: enable configurable tx queue size").
As vhost_user, vhost_vdpa devices should deal with memory region
crosses already, so let's use the full tx size.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
hw/net/virtio-net.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 49cd13314a..b1769bfee0 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -629,17 +629,20 @@ static int virtio_net_max_tx_queue_size(VirtIONet *n)
NetClientState *peer = n->nic_conf.peers.ncs[0];
/*
- * Backends other than vhost-user don't support max queue size.
+ * Backends other than vhost-user or vhost-vdpa don't support max queue
+ * size.
*/
if (!peer) {
return VIRTIO_NET_TX_QUEUE_DEFAULT_SIZE;
}
- if (peer->info->type != NET_CLIENT_DRIVER_VHOST_USER) {
+ switch(peer->info->type) {
+ case NET_CLIENT_DRIVER_VHOST_USER:
+ case NET_CLIENT_DRIVER_VHOST_VDPA:
+ return VIRTQUEUE_MAX_SIZE;
+ default:
return VIRTIO_NET_TX_QUEUE_DEFAULT_SIZE;
- }
-
- return VIRTQUEUE_MAX_SIZE;
+ };
}
static int peer_attach(VirtIONet *n, int index)
--
2.27.0
在 2022/2/18 上午1:50, Eugenio Pérez 写道: > The code used to limit the maximum size of tx queue for others backends > than vhost_user since the introduction of configurable tx queue size in > 9b02e1618cf2 ("virtio-net: enable configurable tx queue size"). > > As vhost_user, vhost_vdpa devices should deal with memory region > crosses already, so let's use the full tx size. > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> > --- > hw/net/virtio-net.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > index 49cd13314a..b1769bfee0 100644 > --- a/hw/net/virtio-net.c > +++ b/hw/net/virtio-net.c > @@ -629,17 +629,20 @@ static int virtio_net_max_tx_queue_size(VirtIONet *n) > NetClientState *peer = n->nic_conf.peers.ncs[0]; > > /* > - * Backends other than vhost-user don't support max queue size. > + * Backends other than vhost-user or vhost-vdpa don't support max queue > + * size. > */ > if (!peer) { > return VIRTIO_NET_TX_QUEUE_DEFAULT_SIZE; > } > > - if (peer->info->type != NET_CLIENT_DRIVER_VHOST_USER) { > + switch(peer->info->type) { > + case NET_CLIENT_DRIVER_VHOST_USER: > + case NET_CLIENT_DRIVER_VHOST_VDPA: > + return VIRTQUEUE_MAX_SIZE; > + default: > return VIRTIO_NET_TX_QUEUE_DEFAULT_SIZE; > - } > - > - return VIRTQUEUE_MAX_SIZE; > + }; > } > > static int peer_attach(VirtIONet *n, int index)
© 2016 - 2024 Red Hat, Inc.