aboutsummaryrefslogtreecommitdiffstats
path: root/packed-ring.tex
Commit message (Collapse)AuthorAgeFilesLines
* Fix ^= in example codeJan Kiszka2019-10-121-2/+2
| | | | | | | Trying to escaping ^ here only leaves the backslash in the output. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* format: replace "- i.e." with ", i.e.,"Michael S. Tsirkin2019-03-211-2/+2
| | | | | | | | | This seems to be preferred by native speakers, and seems just as effective as a sentence device. Fixes: https://issues.oasis-open.org/browse/VIRTIO-171 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* packed-ring: fix used descriptor checking in example codeTiwei Bie2019-01-111-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the driver is processing used descriptors in parallel with adding new available descriptors, the driver can't just check whether USED bit equals to the used wrap counter when checking whether a descriptor is a used descriptor, because the driver also needs to check whether the descriptor has been made available. Below is an example: Assuming ring size is 4, ring's initial state will be: +----+----+----+----+ | 00 | 00 | 00 | 00 | +----+----+----+----+ 00 means AVAIL=0 USED=0, 01 means AVAIL=0 USED=1 10 means AVAIL=1 USED=0, 11 means AVAIL=1 USED=1 After the driver made two descriptor chains available and each chain consists of two descriptors, the ring could be: +----+-----------+----+-----------+ | 10 | 10 (id=0) | 10 | 10 (id=1) | +----+-----------+----+-----------+ After the device processed all the available descriptors and made them used (e.g. in order), the ring could be: +-----------+----+-----------+----+ | 11 (id=0) | 10 | 11 (id=1) | 10 | +-----------+----+-----------+----+ After the driver processed all the used descriptors and made one descriptor (not chained, just one descriptor) available, the ring could be: +-----------+----+----+----+ | 01 (id=0) | 10 | 11 | 10 | +-----------+----+----+----+ After the device made that descriptor used, the ring will be: +-----------+----+----+----+ | 00 (id=0) | 10 | 11 | 10 | +-----------+----+----+----+ If the driver just checks whether USED bit equals to the used wrap counter when checking whether a descriptor is a used descriptor, after processing the first descriptor (whose AVAIL and USED bits are both 0), and advancing vq->next_used pointer, it will then also treat the next descriptor, i.e. the second descriptor (whose AVAIL and USED bits are 1 and 0 respectively) as a used descriptor which is wrong. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/29 Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: put normative on one lineMichael S. Tsirkin2019-01-111-3/+1
| | | | Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* packed-ring: fix queue size for pciMichael S. Tsirkin2018-12-121-1/+1
| | | | | | | | | | | | | PCI is the only transport that has text enforcing a power of two size for VQs. There's no real reason for it to do it, so document that it does not apply with the packed rings. Accordingly, drop the text "unless enforced by a transport" from packed ring description. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/28 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* packed-ring/split-ring/content: fixed misc typosDaniel Marcovitch2018-11-301-1/+1
| | | | | | | | Signed-off-by: Daniel Marcovitch <danielm@mellanox.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/24 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* notifications: unify notifications wording in coreHalil Pasic2018-10-191-26/+34
| | | | | | | | | | | | | | | | | | | | Let us unify the wording when talking about notifications. This change establishes the terms available buffer notification for what was usually simply called notification or virtqueue notification in v1.0 and used buffer notification for what was usually called interrupt. The term configuration change notification in kept where called so and consolidated where it's called configuration change interrupt or similar. The changes done here are limited to the core part, and don't conceptually involve neither the transports nor the devices (references are updated though). Future changes should address these parts. Signed-off-by: Halil Pasic <pasic@linux.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* packed-ring: rephrase "an example driver code"Stefan Hajnoczi2018-03-261-1/+1
| | | | | | | | | | Either "an example of driver code" or "a driver code example" would work. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/7 Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: fix "the descriptor flags +field+ is updated"Stefan Hajnoczi2018-03-261-2/+2
| | | | | | | | | | | Either it needs to be "the descriptors flags are update" (since "flags" is plural) or "the descriptor flags field is updated". Since "flags" is a name of a specific field, I chose the latter solution. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/7 Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: fix pluralsStefan Hajnoczi2018-03-261-2/+2
| | | | | | | | | | | | | | | | There are two instances where plural needs to be used instead of singular: 1. "descriptor(s)" is used later in the text, so use it consistently instead of starting with "descriptor" and switching later. 2. "What follows is the requirements" -> "What follows are the requirements" Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/7 Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: fix capitalization of namesStefan Hajnoczi2018-03-261-2/+2
| | | | | | | | | | | | Names are capitalized, like the Element Length field. General terms like descriptor are not capitalized. This patch fixes two instances where this is inconsistent. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/7 Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: fix 'contigious' typoStefan Hajnoczi2018-03-261-2/+2
| | | | | | | Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/7 Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: add missing commaStefan Hajnoczi2018-03-261-1/+1
| | | | | | | Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/7 Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: add missing articles to sentencesStefan Hajnoczi2018-03-261-45/+45
| | | | | | | | | | | | | | | | | | | | | | | | | There are several sentence structures used throughout the text where an article is missing. For example: ... allocated by driver. or Driver then notifies the device. Standards documents normally use complete sentences so this patch adds the missing articles required before the noun ("driver"): ... allocated by the driver. or The driver then notifies the device. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/7 Approved-by: https://www.oasis-open.org/committees/ballot.php?id=3184
* packed-ring: add in order supportMichael S. Tsirkin2018-03-201-0/+24
| | | | | | | | | | | Support in-order requests for packed rings. This allows selective write-out of used descriptors. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Approved-by: https://www.oasis-open.org/apps/org/workgroup/virtio/ballot.php?id=3177 Fixes: https://github.com/oasis-tcs/virtio-spec/issues/3
* packed virtqueues: more efficient virtqueue layoutMichael S. Tsirkin2018-03-201-0/+690
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. 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 <mst@redhat.com> Acked-by: Cornelia Huck <cohuck@redhat.com> Approved-by: https://www.oasis-open.org/apps/org/workgroup/virtio/ballot.php?id=3177 Fixes: https://github.com/oasis-tcs/virtio-spec/issues/3