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: Re: [virtio] [OASIS Issue Tracker] Created: (VIRTIO-15) Simplify indirect descriptors

Rusty Russell <rusty@au1.ibm.com> writes:
> OASIS Issues Tracker <workgroup_mailer@lists.oasis-open.org> writes:
>> Simplify indirect descriptors
>> -----------------------------
>>                  Key: VIRTIO-15
>>                  URL: http://tools.oasis-open.org/issues/browse/VIRTIO-15
>>              Project: OASIS Virtual I/O Device (VIRTIO) TC
>>           Issue Type: Improvement
>>             Reporter: Rusty Russell
>> The current definition of VIRTIO_DESC_F_INDIRECT is that it stacks: you can set that bit and VIRTIO_DESC_F_NEXT and after processing the (only single level!) of indirect descriptors, the device then processes the next descriptor as normal (which may also be indirect).  No implementation I am aware of generates such multi-part indirect descriptors, but they could be useful if we allow huge indirect descriptors as proposed.
>> Perhaps we should make the bit chain, so if any descriptor has that set, we start traversing that descriptor as a new table, and never return.  This is simpler to implement, and backwards compatible as well.

This just simplifies them.  I'll add a new issue to discuss chaining.

commit 20af5684afde54a96060a94faf582756b9d911fa
Author: Rusty Russell <rusty@au1.ibm.com>
Date:   Mon Sep 9 17:48:02 2013 +0930

    Simplify indirect descriptors.
    You get a single table, no multiple tables (noone does this, but it's
    a PITA to support in devices).
    As per issue virtio-15
    Signed-off-by: Rusty Russell <rusty@au1.ibm.com>

diff --git a/virtio-v1.0-wd01-part1-specification.txt b/virtio-v1.0-wd01-part1-specification.txt
index 6f7d4d5..afdb833 100644
--- a/virtio-v1.0-wd01-part1-specification.txt
+++ b/virtio-v1.0-wd01-part1-specification.txt
@@ -351,8 +351,8 @@ which is a variable, so this code won't compile):
 The first indirect descriptor is located at start of the indirect
 descriptor table (index 0), additional indirect descriptors are
 chained by next field. An indirect descriptor without next field
-(with flags&VRING_DESC_F_NEXT off) signals the end of the indirect descriptor
-table, and transfers control back to the main virtqueue. An
+(with flags&VRING_DESC_F_NEXT off) signals the end of the descriptor.
 indirect descriptor can not refer to another indirect descriptor
 table (flags&VRING_DESC_F_INDIRECT must be off). A single indirect descriptor
 table can include both read-only and write-only descriptors;

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