[PATCH v6 0/5] packed ring layout spec

From
Michael S. Tsirkin <>
Date
2018-01-10T15:38:00+00:00
ID
Thread
[PATCH v6 0/5] packed ring layout spec
On Wed, Jan 10, 2018 at 03:15:38PM +0100, Cornelia Huck wrote:
> On Wed, 10 Jan 2018 11:47:58 +0200 > "Michael S. Tsirkin" <> wrote: >  >
> Performance analysis of this is in my kvm forum 2016 presentation.  The >
> idea is to have a r/w descriptor in a ring structure, replacing the used >
> and available ring, index and descriptor buffer. >
> Do we have a place to store pointers to such information? >  > >  >
> This is also easier for devices to implement than the 1.0 layout. >
> Several more enhancements will be necessary to actually make this >
> efficient for devices to use. > >  >
> Signed-off-by: Michael S. Tsirkin <> > > --- >
>  content.tex
36 ++- >
>  packed-ring.tex
668 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >
>  2 files changed, 701 insertions(+), 3 deletions(-) >
>  create mode 100644 packed-ring.tex > >  >
> diff --git a/content.tex b/content.tex >
> index 3b4579e..3059bd3 100644 > > --- a/content.tex > > +++ b/content.tex >  > (...) >  > > @@ -5199,10 +5215,19 @@ Currently these device-independent feature bits defined: > >  egin{description} >
>
item[VIRTIO_F_RING_INDIRECT_DESC (28)] Negotiating this feature indicates >
>
that the driver can use descriptors with the VIRTQ_DESC_F_INDIRECT > > -  flag set, as described in
ef{sec:Basic Facilities of a Virtio Device / Virtqueues / The Virtqueue Descriptor Table / Indirect Descriptors}~
ameref{sec:Basic Facilities of a Virtio Device / Virtqueues / The Virtqueue Descriptor Table / Indirect Descriptors}. > > +  flag set, as described in
ef{sec:Basic Facilities of a Virtio > > +Device / Virtqueues / The Virtqueue Descriptor Table / Indirect > > +Descriptors}~
ameref{sec:Basic Facilities of a Virtio Device / > > +Virtqueues / The Virtqueue Descriptor Table / Indirect > > +Descriptors} and > > +
ef{sec:Packed Virtqueues / Indirect Flag: Scatter-Gather Support} > > +
ef{sec:Packed Virtqueues / Driver and Device Event Suppression}. >
> That one needs to go below (copy/paste error?). >  > >
>
>
item[VIRTIO_F_RING_EVENT_IDX(29)] This feature enables the field{used_event} > > -  and the field{avail_event} fields as described in
ef{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Interrupt Suppression} and
ef{sec:Basic Facilities of a Virtio Device / Virtqueues / The Virtqueue Used Ring}. > > +  and the field{avail_event} fields as described in > > +
ef{sec:Basic Facilities of a Virtio Device / Virtqueues / > > +Virtqueue Interrupt Suppression},
ef{sec:Basic Facilities of a Virtio Device / Virtqueues / The Virtqueue Used Ring} > > +and . >
> Here's where the ref above needs to go. >  > >
>
>
item[VIRTIO_F_VERSION_1(32)] This indicates compliance with this >
>
specification, giving a simple way to detect legacy devices or drivers. > > @@ -5212,6 +5237,9 @@ Currently these device-independent feature bits defined: >
>
addresses in memory.  If this feature bit is set to 0, then the device emits >
>
physical addresses which are not translated further, even though an IOMMU >
>
may be present. > > +  item[VIRTIO_F_RING_PACKED(34)] This feature indicates > > +  support for the packed virtqueue layout as described in > > +
ef{sec:Basic Facilities of a Virtio Device / Packed Virtqueues}. >
>  end{description} >
> I think the references should include a title as well (that makes the
> resulting document easier to read).  Want to add a macro including ref+nameref? We'd use it for all sec: references then.  > >
>
>  drivernormative{section}{Reserved Feature Bits}{Reserved Feature Bits}