[PATCH v6 0/5] packed ring layout spec

From
Cornelia Huck <>
Date
2018-01-10T14:16:00+00:00
ID
Thread
[PATCH v6 0/5] packed ring layout spec
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:
>  \begin{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 \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / The Virtqueue Descriptor Table / Indirect Descriptors}~\nameref{sec:Basic Facilities of a Virtio Device / Virtqueues / The Virtqueue Descriptor Table / Indirect Descriptors}.
> +  flag set, as described in \ref{sec:Basic Facilities of a Virtio
> +Device / Virtqueues / The Virtqueue Descriptor Table / Indirect
> +Descriptors}~\nameref{sec:Basic Facilities of a Virtio Device /
> +Virtqueues / The Virtqueue Descriptor Table / Indirect
> +Descriptors} and
> +  \ref{sec:Packed Virtqueues / Indirect Flag: Scatter-Gather Support}
> +\ref{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 \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Interrupt Suppression} and \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / The Virtqueue Used Ring}.
> +  and the \field{avail_event} fields as described in
> +\ref{sec:Basic Facilities of a Virtio Device / Virtqueues /
> +Virtqueue Interrupt Suppression}, \ref{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
> +\ref{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).

>
>  \drivernormative{\section}{Reserved Feature Bits}{Reserved Feature Bits}