Hi Michael, > -----Original Message----- > From: virtio-dev@xxxxxxxxxxxxxxxxxxxx [mailto:virtio-dev@xxxxxxxxxxxxxxxxxxxx] > On Behalf Of Michael S. Tsirkin > Sent: Sunday, September 10, 2017 1:06 PM > To: virtio-dev@xxxxxxxxxxxxxxxxxxxx > Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx > Subject: [virtio-dev] packed ring layout proposal v3 > [...] > * Descriptor ring: > > Driver writes descriptors with unique index values and DESC_DRIVER set in > flags. > Descriptors are written in a ring order: from start to end of ring, wrapping > around to the beginning. > Device writes used descriptors with correct len, index, and DESC_HW clear. > Again descriptors are written in ring order. This might not be the same order > of driver descriptors, and not all descriptors have to be written out. > > Driver and device are expected to maintain (internally) a wrap-around bit, > starting at 0 and changing value each time they start writing out descriptors > at the beginning of the ring. This bit is passed as DESC_WRAP bit in the flags > field. One simple question there, trying to understand the usage of DESC_WRAP flag. DESC_WRAP bit is a new flag since v2. It's used to address 'non power-of-2 ring sizes' mentioned in v2? Being confused by the statement of wrap-around bit here, it's an internal wrap-around counter represented by single bit (0/1)? DESC_WRAP can appear on any descriptor entry in the ring, why it highlights changing value at the beginning of the ring? > > Flags are always set/cleared last. > > Note that driver can write descriptors out in any order, but device will not > execute descriptor X+1 until descriptor X has been read as valid. > > Driver operation: > [...] > > DESC_WRAP - device uses this field to detect descriptor change by driver. Device uses this field to detect change of wrap-around boundary by driver? [...] > > Device operation (using descriptors): > [...] > > DESC_WRAP - driver uses this field to detect descriptor change by device. Driver uses this field to detect change of wrap-around boundary by device? By using this, driver doesn't need to maintain any internal wrap-around count, but being aware of wrap-around by DESC_WRAP flag. Thanks, Steve > [...] > > --- > > 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://www.oasis-open.org/committees/virtio/ipr.php > might become Essential Claims. > Note: the page above is unfortunately out of date and out of > my hands. I'm in the process of updating ipr disclosures > in github instead. Will make sure all is in place before > this proposal is put to vote. As usual this TC operates under the > Non-Assertion Mode of the OASIS IPR Policy, which protects > anyone implementing the virtio spec. > > -- > MST > > --------------------------------------------------------------------- > To unsubscribe, e-mail: virtio-dev-unsubscribe@xxxxxxxxxxxxxxxxxxxx > For additional commands, e-mail: virtio-dev-help@xxxxxxxxxxxxxxxxxxxx _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization