Skip to content

packed ring layout spec

Michael S. Tsirkin virtio-dev 7 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v10 Latest13 patches 11 repliesIn review
  2. v9 posting 2/216 patches 19 repliesSuperseded
  3. v9 posting 1/21 patch 1 replySuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v814 of 16 patches34 repliesSuperseded
v711 patches40 repliesSuperseded
v65 patches14 repliesSuperseded
v1 RFC1 patch12 repliesSuperseded

Changes in v10 from the cover letter

- corrected pseudo-code to work correctly without IN_ORDER (since that's what the accompanying text says).
- new bit-field notation
- update format for the event suppression structure
- prefix packed ring structures with pvirtq_ for consistency and to avoid confusion with the split ring structures
- deferred NOTIFICATION_DATA patches - will post separately, they need more review by s390 editor, and proof of concept code is not ready yet (needs host kernel support).

Patches in v10 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13introduction: document bitfield notationintroduction.tex+41 -00 replies
2/13content: move 1.0 queue format out to a separate sectioncontent.tex+24 -10 replies
3/13content: move ring text out to a separate filecontent.tex split-ring.tex+499 -4980 replies
4/13content: move virtqueue operation descriptionconformance.tex content.tex split-ring.tex+185 -1710 replies
5/13content: len -> used length, used ring -> vqcontent.tex+20 -190 replies
6/13content: generalize transport ring part namingcontent.tex split-ring.tex+43 -240 replies
7/13content: generalize rest of textcontent.tex+6 -80 replies
8/13split-ring: generalize textconformance.tex content.tex split-ring.tex+9 -60 replies
9/13split-ring: typo: aligmentsplit-ring.tex+1 -10 replies
10/13packed virtqueues: more efficient virtqueue layoutcontent.tex packed-ring.tex+715 -30 replies
11/13content: in-order buffer usecontent.tex+15 -00 replies
12/13packed-ring: add in order supportpacked-ring.tex+24 -00 replies
13/13split-ring: in order featuresplit-ring.tex+18 -011 replies

Reviews trailers per patch

10 of 13 patches have a Reviewed-by or Acked-by.

PatchCornelia HuckStefan Hajnoczi
1/13
2/13R-b
3/13R-b
4/13R-b
5/13R-b
6/13R-b
7/13R-b
8/13
9/13
10/13A-b
11/13R-b R-b
12/13R-b R-b
13/13R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v10 thread

Cover letter [virtio] [PATCH v10 00/13] packed ring layout spec

This is a proposal to implement an alternative ring layout. The idea is to have a r/w descriptor in a ring structure, replacing the used and available ring, index and descriptor buffer.

This is more efficient and easier for devices to implement than the 1.0 layout.

Additionally, a new feature flag is proposed that makes devices promise to process descriptors in-order. With this feature drivers can also be made simpler and more efficient.

Discussion and performance analysis of this is in Michael Tsirkin's kvm forum 2016 and 2017 presentations.

---

This revision addresses review comments on v9.

Thanks a lot to all reviewers of earlier revisions!

I plan to start voting on this shortly.

A compiled version can
be found under https://github.com/oasis-tcs/virtio-docs.git

See

virtio-v1.1-packed-wd10-diff.pdf virtio-v1.1-packed-wd10.pdf

for redline and clean versions, respectively.

If you are interested in changes from v9, that's in

virtio-v1.1-packed-w09-to-wd10-diff.pdf

in the same directory.

Note: please do not try to edit the pdf and post comments in the edited file. Please post comments in a text format, as pdfs are not archived with the list.

TODO: support for actual passthrough devices will likely require more new features, such as requirement for stronger memory barriers.

Changes since v9:
- corrected pseudo-code to work correctly without IN_ORDER (since that's what the accompanying text says).
- new bit-field notation
- update format for the event suppression structure
- prefix packed ring structures with pvirtq_ for consistency and to avoid confusion with the split ring structures
- deferred NOTIFICATION_DATA patches - will post separately, they need more review by s390 editor, and proof of concept code is not ready yet (needs host kernel support).

Note: should this proposal be accepted and approved, one or more
claims disclosed to the TC admin and listed on the Virtio TC IPR page https://github.com/oasis-tcs/virtio-admin/blob/master/IPR.md
might become Essential Claims.

Michael S. Tsirkin (13):
introduction: document bitfield notation
content: move 1.0 queue format out to a separate section
content: move ring text out to a separate file
content: move virtqueue operation description
content: len -> used length, used ring -> vq
content: generalize transport ring part naming
content: generalize rest of text
split-ring: generalize text
split-ring: typo: aligment
packed virtqueues: more efficient virtqueue layout
content: in-order buffer use
packed-ring: add in order support
split-ring: in order feature

 conformance.tex  |   5 +-
 content.tex      | 808 ++++++++-----------------------------------------------
 introduction.tex |  41 +++
 packed-ring.tex  | 714 ++++++++++++++++++++++++++++++++++++++++++++++++
 split-ring.tex   | 689 +++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 1563 insertions(+), 694 deletions(-)
 create mode 100644 packed-ring.tex
 create mode 100644 split-ring.tex
Signature · 7 lines
MST


---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that 
generates this mail.  Follow this link to all your TCs in OASIS at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php