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 thing. 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 version. Finally - where do we draw the line? Does any bugfix need a feature bit? > -- > Regards, > > Anthony Liguori