Re: Can we increase vring size over 1024?

Michael S. Tsirkin
2016-09-04T01:31:07Z

On Sat, Sep 03, 2016 at 04:20:47AM +0000, Gonglei (Arei) wrote:
>
>
> > -----Original Message-----
> > From: Michael S. Tsirkin [mailto:mst@redhat.com]
> > Sent: Saturday, September 03, 2016 1:33 AM
> > To: Gonglei (Arei)
> > Cc: stefanha@redhat.com; jasowang@redhat.com; kvm@vger.kernel.org;
> > virtio-dev@lists.oasis-open.org; qemu-devel@nongnu.org; Lilijun (Jerry);
> > Huangpeng (Peter)
> > Subject: Re: Can we increase vring size over 1024?
> >
> > On Fri, Sep 02, 2016 at 06:55:35AM +0000, Gonglei (Arei) wrote:
> > > Hi Michael & all,
> > >
> > > Michael, you made a presentation about the virto 1.1's new features in KVM
> > Forum last week.
> > > That's wonderful!
> > >
> > > And I'd like to know can we increase vring size over 1024, such as 4096 or
> > 8192?
> > >
> > > My colleage had asked the same question in 2014, but she didn't get a
> > definite answare,
> > > So, I want to rewake up the dissusstion about this. Becase for the
> > virtio-crypto device,
> > > I also need to increase the vring size to get better performance and
> > thoughput, but the Qemu
> > > side limit the thought as VIRTQUEUE_MAX_SIZE is 1024.
> > >
> > > [QA-virtio]:Why vring size is limited to 1024?
> > >
> > http://qemu.11.n7.nabble.com/QA-virtio-Why-vring-size-is-limited-to-1024-td2
> > 92450.html
> > >
> > > Avi Kivity said that google cloud exposed the vring size to 16k.
> > >
> > > Regards,
> > > -Gonglei
> >
> > Fundamentally, the reason is that the ring size
> > currently also sets the max s/g list length, and linux
> > hosts can't support bigger lists.
> >
> But I don't think this is a problem.
> Vring is just a container, we can say the max request's length is 1024, but the capacity of container
> shouldn't be the length of max request. For example, we can put 4K requests with one s/g list
> into vring at one time if the vring size is 4096, and 4 requests with 1024 s/g list into vring at one time.
> Ignoring the indirect table support. Am I right?

We'd have to change the spec for that. At the moment spec says
they are the same. Features that link descriptors when they
are used, like mergeable buffers, would also need to obey the
new limit. When vring size is used, both fall out naturally
(except with indirect descriptors).

> > We should fix that in 1.1.
> >
> Sounds good!
>
> > --
> > MST
>
> Regards,
> -Gonglei