[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH] qemu/virtio-net: remove wrong s/g layout assump

From: Michael S. Tsirkin
Subject: [Qemu-devel] Re: [PATCH] qemu/virtio-net: remove wrong s/g layout assumptions
Date: Tue, 24 Nov 2009 23:30:00 +0200
User-agent: Mutt/1.5.19 (2009-01-05)

On Tue, Nov 24, 2009 at 03:04:47PM -0600, Anthony Liguori wrote:
> Michael S. Tsirkin wrote:
>> On Tue, Nov 24, 2009 at 01:50:25PM -0600, Anthony Liguori wrote:
>>> Michael S. Tsirkin wrote:
>>>> virtio net currently assumes that the first s/g element it gets is
>>>> always virtio net header. This is wrong.
>>>> There should be no assumption on sg boundaries.  For example, the guest
>>>> should be able to put the virtio_net_hdr in the front of the skbuf data
>>>> if there is room.  Get rid of this assumption, properly consume space
>>>> from iovec, always.
>>> Practically speaking, we ought to advertise a feature bit to let a   
>>> kernel know that we are no longer broken.
>>> Otherwise, there are a ton of old userspaces that will break with new 
>>>  guests.
>> My thinking is, first of all let's fix the bug.
>> We'll add a feature bit when or if some guest wants to use it.
>> Maybe this will be 100 years down the road when all old userspace
>> has died a natural death :)
>> Makes sense?
> I don't think it's useful to do this without adding a feature bit.
> If we don't add a feature bit, the guest kernel cannot rely on this  
> behavior so it means by definition this is dead code.

It's useful because this way I won't have to maintain the fix, and it
will make it possible for guests to experiment with layouts, without
hacking qemu. If someone wants to make it a product, that's a different

Also, it might be a valid thing for a guest to say that host needs to be
fixed. Not everyone might care about running on any possible broken qemu

Finally - where do we draw the line? Does any bugfix need a feature bit?

> -- 
> Regards,
> Anthony Liguori

reply via email to

[Prev in Thread] Current Thread [Next in Thread]