Rusty Russell [off-list ref] writes:
"Michael S. Tsirkin" [off-list ref] writes:
quoted
Thinking about Sasha's patches, we can reduce ring usage
for virtio net small packets dramatically if we put
virtio net header inline with the data.
This can be done for free in case guest net stack allocated
extra head room for the packet, and I don't see
why would this have any downsides.
I've been wanting to do this for the longest time... but...
quoted
Even though with my recent patches qemu
no longer requires header to be the first s/g element,
we need a new feature bit to detect this.
A trivial qemu patch will be sent separately.
There's a reason I haven't done this. I really, really dislike "my
implemention isn't broken" feature bits. We could have an infinite
number of them, for each bug in each device.
This is a bug in the specification.
The QEMU implementation pre-dates the specification. All of the actual
implementations of virtio relied on the semantics of s/g elements and
still do.
What's in the specification really doesn't matter when it doesn't agree
with all of the existing implementations.
Users use implementations, not specifications. The specification really
ought to be changed here.
Regards,
Anthony Liguori