qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: thuth@linux.vnet.ibm.com, rusty@rustcorp.com.au,
	qemu-devel@nongnu.org, kvm@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: Re: [Qemu-devel] [PATCH RFC v4 00/16] qemu: towards virtio-1 host support
Date: Thu, 27 Nov 2014 17:42:11 +0200	[thread overview]
Message-ID: <20141127154211.GC26747@redhat.com> (raw)
In-Reply-To: <20141127163139.7db48144.cornelia.huck@de.ibm.com>

On Thu, Nov 27, 2014 at 04:31:39PM +0100, Cornelia Huck wrote:
> On Thu, 27 Nov 2014 17:24:22 +0200
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Thu, Nov 27, 2014 at 04:16:33PM +0100, Cornelia Huck wrote:
> > > Yet another version of the virtio-1 support patches.
> > > 
> > > This one has seen some (very) light testing with the virtio-1 guest
> > > support patches currently on vhost-next.
> > > 
> > > Changes from v3:
> > > 
> > > - Add support for FEATURES_OK. We refuse to set features after the
> > >   driver has set this in the status field, and we allow to fail
> > >   setting the status if the features are inconsistent.
> > > - Add missing virtio-1 changes for virtio-net (header size and mac).
> > > - Dropped setting the VERSION_1 bit for virtio-blk: There's still
> > >   some stuff missing.
> > > 
> > > For virtio-blk, we need to validate the feature bits if version 1 is
> > > negotiated: some legacy features are not allowed in that case. I'm not
> > > quite sure how to handle this, though. We could use the new
> > > validate_features callback to verify that the driver negotiated a
> > > sensible feature set, but that would require us to offer a superset
> > > of legacy and version 1 bits, which feels wrong. Any ideas?
> > 
> > No, that's violating the spec.
> > I think the simplest way is to have separate features and
> > legacy_features fields.  Present the correct one depending on which
> > revision was negotiated.
> 
> But revisions are a virtio-ccw only thing - what can other transports
> do here?

Other transports have different ways to deal with this.
For example virtio pci exposes a legacy header and
a modern header. Legacy header will expose old features,
modern one - new features.

mmio simply does not support transitional devices.
So qemu user will have to specify virtio 1.0 or 0.9 for mmio.

Other transports are out of virtio 1.0 spec so
they just use legacy features.

> The basic problem is that we decide via a feature bit that
> needs to be negotiated which feature bits we want to present.

Consider wce as one example.  This is not needed for modern guests, so
we can just mask it from modern feature mask.  Consider virtio blk scsi
commands as another example.  this feature is not supported in virtio
1.0, so we must mask it from modern feature mask.

Seems the same handling works in all cases?


> pci and
> mmio don't have a way to know whether the driver wants to use 1.0 or
> legacy prior to feature negotiation, do they?

pci does. mmio doesn't but it does not want to support transitional
devices.

  reply	other threads:[~2014-11-27 15:42 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-27 15:16 [Qemu-devel] [PATCH RFC v4 00/16] qemu: towards virtio-1 host support Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 01/16] linux-headers/virtio_config: Update with VIRTIO_F_VERSION_1 Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 02/16] virtio: cull virtio_bus_set_vdev_features Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 03/16] virtio: support more feature bits Cornelia Huck
2014-11-27 15:34   ` Michael S. Tsirkin
2014-11-27 15:40     ` Cornelia Huck
2014-11-27 15:44       ` Michael S. Tsirkin
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 04/16] s390x/virtio-ccw: fix check for WRITE_FEAT Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 05/16] virtio: introduce legacy virtio devices Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 06/16] virtio: allow virtio-1 queue layout Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 07/16] dataplane: allow virtio-1 devices Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 08/16] s390x/css: Add a callback for when subchannel gets disabled Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 09/16] s390x/virtio-ccw: add virtio set-revision call Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 10/16] s390x/virtio-ccw: support virtio-1 set_vq format Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 11/16] virtio: disallow late feature changes for virtio-1 Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 12/16] virtio: allow to fail setting status Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 13/16] s390x/virtio-ccw: enable virtio 1.0 Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 14/16] virtio-net: no writeable mac for virtio-1 Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 15/16] virtio-net: support longer header Cornelia Huck
2014-11-27 15:16 ` [Qemu-devel] [PATCH RFC v4 16/16] virtio-net: enable virtio 1.0 Cornelia Huck
2014-11-27 15:24 ` [Qemu-devel] [PATCH RFC v4 00/16] qemu: towards virtio-1 host support Michael S. Tsirkin
2014-11-27 15:31   ` Cornelia Huck
2014-11-27 15:42     ` Michael S. Tsirkin [this message]
2014-11-27 16:06       ` Cornelia Huck
2014-11-27 16:18         ` Michael S. Tsirkin
2014-11-27 16:28           ` Cornelia Huck
2014-11-27 16:35             ` Michael S. Tsirkin
2014-11-28  9:47               ` Cornelia Huck
2014-11-27 16:38             ` Michael S. Tsirkin
2014-11-28  9:50               ` Cornelia Huck
2015-02-25  4:20 ` [Qemu-devel] Qemu and virtio 1.0 Rusty Russell
2015-02-25 11:26   ` Cornelia Huck
2015-03-02 11:43   ` Michael S. Tsirkin
2015-03-02 12:00     ` Cornelia Huck

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=20141127154211.GC26747@redhat.com \
    --to=mst@redhat.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rusty@rustcorp.com.au \
    --cc=thuth@linux.vnet.ibm.com \
    --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;
as well as URLs for NNTP newsgroup(s).