[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH v9 00/16] packed ring layout spec
This addresses comments on v8.
Thanks a lot to all reviewers of v8 - I hope we are
finally there or almost there.
A compiled version can
be found under https://github.com/oasis-tcs/virtio-docs.git
virtio-v1.1-packed-wd09-diff.pdf virtio-v1.1-packed-wd09.pdf
for redline and clean versions, respectively.
If you are interested in changes from v8, that's in
virtio-v1.1-w08-to-wd09-diff.pdf
in this 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.
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.
Changes from v8:
packed-ring: clarify wording on s/g conformance
split-ring: typo: aligment
packed-ring: typo: aligment
packed-ring: clarify multi-buffer requests
packed-ring: necessary, not sufficient condition
packed-ring: support skipping used descritors
packed-ring: fix pseudo code
packed-ring: format pseudocode using spaces
packed-ring: drop << in pseudocode
packed-ring: clarify event suppression format
packed-ring: chained descriptors are always on
VIRTIO_F_NOTIFICATION_DATA: switch to bitfields
introduction: document bitfield notation
VIRTIO_F_NOTIFICATION_DATA: minor cleanups
content: VIRTIO_F_NOTIFICATION_DATA is option
VIRTIO_F_NOTIFICATION_DATA: improve formatting
Changes from v7:
- new notitfication_data feature, supported for all
transports and formats
- addressed all outstanding comments
Changes from v6:
- isolate in-order feature to a separate set of patches
(reduces scope in case there's more discussion around it)
- support in-order option for split rings
- update all references to available/used ring in spec
to a format-agnostic terminology
- minor changes to event suppression format
- minor changes to notification format
- lots of new conformance clauses
Changes from v5:
- scope reductions (see below). We can add more
features down the road, hopefully reduced scope will be enough
to finalize spec soon.
- cleanup and integrate in the spec
- pseudo-code
Deferred features:
- dropped _F_DESC_LIST, 1.0 includes this unconditionally, we
can do same
- dropped event structure change notifications - needed for
efficient hardware implementations but let's add this on top
3 1st patches just move text around so all virtio 1.0
things are in the same place. 2 last ones add the new layout
Option to mark descriptors as not generating events isn't
yet implemented. Again, let's add this on top.
I also note that for hardware implementations, a different
set of memory barriers is needed. Again, let's add this on top
Michael S. Tsirkin (16):
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
VIRTIO_F_NOTIFICATION_DATA: extra data to devices
makediff: update to show diff from master
REVISION: set to 1.1 packed wd09
REVISION | 2 +-
conformance.tex | 5 +-
content.tex | 919 ++++++++++++++-----------------------------------------
introduction.tex | 18 ++
makediff.sh | 3 +-
notifications.c | 3 +
packed-ring.tex | 704 ++++++++++++++++++++++++++++++++++++++++++
split-ring.tex | 689 +++++++++++++++++++++++++++++++++++++++++
8 files changed, 1655 insertions(+), 688 deletions(-)
create mode 100644 notifications.c
create mode 100644 packed-ring.tex
create mode 100644 split-ring.tex
--
MST
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]