From: Rusty Russell <rusty@rustcorp.com.au>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org, kvm@vger.kernel.org,
qemu-devel@nongnu.org, Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCHv3 1/2] virtio: support layout with avail ring before idx
Date: Sat, 5 Jun 2010 13:40:26 +0930 [thread overview]
Message-ID: <201006051340.27194.rusty@rustcorp.com.au> (raw)
In-Reply-To: <20100604114205.GA22599@redhat.com>
On Fri, 4 Jun 2010 09:12:05 pm Michael S. Tsirkin wrote:
> On Fri, Jun 04, 2010 at 08:46:49PM +0930, Rusty Russell wrote:
> > I'm uncomfortable with moving a field.
> >
> > We haven't done that before and I wonder what will break with old code.
>
> With e.g. my patch, We only do this conditionally when bit is negotitated.
Of course, but see this change:
commit ef688e151c00e5d529703be9a04fd506df8bc54e
Author: Rusty Russell <rusty@rustcorp.com.au>
Date: Fri Jun 12 22:16:35 2009 -0600
virtio: meet virtio spec by finalizing features before using device
Virtio devices are supposed to negotiate features before they start using
the device, but the current code doesn't do this. This is because the
driver's probe() function invariably has to add buffers to a virtqueue,
or probe the disk (virtio_blk).
This currently doesn't matter since no existing backend is strict about
the feature negotiation. But it's possible to imagine a future feature
which completely changes how a device operates: in this case, we'd need
to acknowledge it before using the device.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Now, this isn't impossible to overcome: we know that if they use the ring
before completing feature negotiation then they don't understand the new
format.
But we have to be aware of that on the qemu side. Are we?
> > Should we instead just abandon the flags field and use last_used only?
> > Or, more radically, put flags == last_used when the feature is on?
> >
> > Thoughts?
> > Rusty.
>
> Hmm, e.g. with TX and virtio net, we almost never want interrupts,
> whatever the index value.
Good point. OK, I give in, I'll take your patch which moves the fields
to the end. Is that your preference?
Please be careful with the qemu side though...
It's not inconceivable that I'll write that virtio cacheline simulator this
(coming) week, too...
Thanks.
Rusty.
next prev parent reply other threads:[~2010-06-05 4:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-01 14:47 [PATCHv3 0/2] virtio: put last seen used index into ring itself Michael S. Tsirkin
2010-06-01 14:47 ` [PATCHv3 1/2] virtio: support layout with avail ring before idx Michael S. Tsirkin
2010-06-04 2:34 ` Rusty Russell
2010-06-04 10:35 ` Michael S. Tsirkin
2010-06-04 11:16 ` Rusty Russell
2010-06-04 11:42 ` Michael S. Tsirkin
2010-06-05 4:10 ` Rusty Russell [this message]
2010-06-06 9:11 ` Michael S. Tsirkin
2010-06-01 14:47 ` [PATCHv3 2/2] virtio: publish used idx Michael S. Tsirkin
2010-06-01 15:12 ` [PATCHv3 0/2] virtio: put last seen used index into ring itself Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201006051340.27194.rusty@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=akpm@linux-foundation.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox