OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

virtio message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: [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.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/3


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


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


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


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]