> From: Michael S. Tsirkin <mst@xxxxxxxxxx> > Sent: Sunday, July 14, 2024 1:25 PM > > On Wed, Jul 10, 2024 at 08:35:58AM +0200, Jiri Pirko wrote: > > From: Jiri Pirko <jiri@xxxxxxxxxx> > > > > Don't limit the admin queue size to VIRTIO_AVQ_SGS_MAX and rather rely > > on the queried queue size. > > > > Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxx> > > I have some doubts about this one. Can't we limit the size to something > sensible? E.g. max number of CPUs? Number of VFs? I don't see why we > should just follow what device did blindly, the device has no idea about use > so would tend to over-provision. > +1. I agree with Michael, we can possibly do min(max_cpus, device_supplied_limit). When more use cases of it arise, this can be improved in future to use larger limit. > > --- > > drivers/virtio/virtio_pci_modern.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/virtio/virtio_pci_modern.c > > b/drivers/virtio/virtio_pci_modern.c > > index 5ceb4b2c18df..a649c9dc436d 100644 > > --- a/drivers/virtio/virtio_pci_modern.c > > +++ b/drivers/virtio/virtio_pci_modern.c > > @@ -550,8 +550,7 @@ static struct virtqueue *setup_vq(struct > virtio_pci_device *vp_dev, > > if (index >= vp_modern_get_num_queues(mdev) && !is_avq) > > return ERR_PTR(-EINVAL); > > > > - num = is_avq ? > > - VIRTIO_AVQ_SGS_MAX : vp_modern_get_queue_size(mdev, > index); > > + num = vp_modern_get_queue_size(mdev, index); > > /* Check if queue is either not available or already active. */ > > if (!num || vp_modern_get_queue_enable(mdev, index)) > > return ERR_PTR(-ENOENT); > > -- > > 2.45.2