On Fri, 13 Apr 2012 10:48:18 -0500, Anthony Liguori <aliguori@xxxxxxxxxx> wrote:
> On 04/13/2012 09:50 AM, Stefan Hajnoczi wrote:
> > The virtio specification says:
> >
> > "The descriptors used for a buffer should not effect the semantics
> > of the message,
> > except for the total length of the buffer"
> >
> > and
> >
> > "In particular, no implementation should use the descriptor boundaries
> > to determine the size of any header in a request"
>
> This was the noble intention but all of the implementations actually rely on
> boundary sizes.
>
> Both QEMU and lguest rely on boundary sizes. We've removed some of it in
> virtio-net in QEMU but it still looks like it's there for virtio-blk.
I will fix lguest. It's a poor excuse to say that lguest doens't have
an ABI, so it can take these shortcuts; it's also the exemplar.
> kvm tool also makes this assumption.
>
> > Why should descriptor layout not be specified?
> >
> > It seems that implementing arbitrary descriptor layout support (e.g.
> > 1-byte descriptors) requires more code and makes input validation
> > harder.
> >
> > Why bother with the flexibility of unspecified descriptor layouts? As
> > long as the layout is specified clearly it makes everyone's lives
> > easier to use a strict descriptor layout.
>
> I hate to just change the spec here but I don't see a better option.
For example, in the net code, we could often pack the virtio_net header
into the skb and save a descriptor.
We didn't do this because it would break qemu.
Added to TODO list: a new DEBUG config option which breaks up virtio
descriptors.
Thanks,
Rusty.
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[KVM Development]
[CentOS Virtualization]
[Netdev]
[Ethernet Bridging]
[Linux Wireless]
[Kernel Newbies]
[Security]
[Linux for Hams]
[Netfilter]
[Bugtraq]
[Photo]
[Yosemite]
[Yosemite Forum]
[MIPS Linux]
[ARM Linux]
[Linux RAID]
[Linux Admin]
[Samba]
[Find Someone Nice]
[Video 4 Linux]
[Linux Resources]