If the tail pointer is available to the device, can an implementation not check the DESC_HW flag on each individual descriptor to save some cycle? Implementation is supposed to check VRING_DESC_F_WRITE prior to the write. However, I don’t see either DPDK or VPP is checking it. I don’t know if they are doing that on purpose to save some cycle or an oversight.
Steven
On 8/24/17, 7:25 AM, " on behalf of Paolo Bonzini" < on behalf of > wrote:
On 24/08/2017 16:23, Michael S. Tsirkin wrote:
> On Thu, Aug 24, 2017 at 02:10:34PM +0200, Paolo Bonzini wrote:
>> On 24/08/2017 13:53, Tiwei Bie wrote:
>>>
>>> * In addition to the DESC_HW flag, each virtio queue has a tail pointer
>>> - Driver creates suitable (i.e. multiple of cacheline) descriptors,
>>> then performs MMIO write to tail pointer.
>>
>> If I understand correctly, the tail pointer is the value that is written
>> to the MMIO register. If that is the case, this is unfortunately bad
>> for virtualization. Virt prefers a doorbell register where the value
>> doesn't matter.
>
> I think it's fine actually, this tail pointer merely duplicates data
> that is already available in form of DESC_HW flag. Virt can just ignore
> the value.
If the spec says the hardware can read speculatively beyond the tail
pointer, that's fine indeed (that was not in Tiwei's proposal).
Paolo
This publicly archived list offers a means to provide input to the
OASIS Virtual I/O Device (VIRTIO) TC.
In order to verify user consent to the Feedback License terms and
to minimize spam in the list archive, subscription is required
before posting.
Subscribe:
Unsubscribe:
List help:
List archive: https://lists.oasis-open.org/archives/virtio-comment/
Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
Committee: https://www.oasis-open.org/committees/virtio/
Join OASIS: https://www.oasis-open.org/join/