qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cornelia Huck <cornelia.huck@de.ibm.com>
To: "Michael S. Tsirkin" <mst@redhat.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: Fri, 28 Nov 2014 10:47:42 +0100	[thread overview]
Message-ID: <20141128104742.0ac9a9ab.cornelia.huck@de.ibm.com> (raw)
In-Reply-To: <20141127163540.GC27124@redhat.com>

On Thu, 27 Nov 2014 18:35:40 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Thu, Nov 27, 2014 at 05:28:42PM +0100, Cornelia Huck wrote:
> > On Thu, 27 Nov 2014 18:18:25 +0200
> > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > 
> > > On Thu, Nov 27, 2014 at 05:06:51PM +0100, Cornelia Huck wrote:
> > 
> > > > So we should have a per-device callback into the transport layer, say
> > > > check_legacy()?
> > > 
> > > I would just have 2 masks: legacy_features and features.
> > 
> > But these belong to the device type and the transport just needs to
> > trigger usage of the right one, right?
> 
> Yes.
> 
> > > 
> > > > For ccw, this would check for the negotiated revision; for mmio, it
> > > > could check a device property configured with the device; and for pci,
> > > > whatever the mechanism is there :)
> > > > 
> > > > A transport not implementing this callback is simply considered
> > > > legacy-only.
> > > 
> > > I dislike callbacks. Let's just give all info to core,
> > > and have it DTRT.
> > > 
> > Have a is_legacy flag in the vdev that is initialized to 1, and
> > transports can unset it when the revision is negotiated or during init?
> 
> I would say have modern_features, legacy_features, and set host_features
> correctly.
> 

Started digging through the code a bit:

Currently the only time where the transport is actually mucking with
the feature bits is when the device is plugged, when it adds its
feature bits and calls virtio_bus_get_vdev_features() to get the device
specific bits. Only mmio knows at this point in time whether it has a
v1.0 or a legacy device. Other transports will need to call this
function again when the guest has actually set the revision.

My plan is the following:

- have virtio_bus_get_vdev_features_rev() that takes
  a virtio-rev parameter (0: legacy, 1: v1.0)
- unconverted transports keep calling virtio_bus_get_vdev_features()
  which calls virtio_bus_get_vdev_features_rev(..., 0)
- the rev parameter gets passed to the device, which hands over the
  right feature set (I don't think that we can use static feature
  tables, as the device may need to calulate the desired feature set
  dynamically)

Sounds reasonable?

  reply	other threads:[~2014-11-28  9:50 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
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 [this message]
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=20141128104742.0ac9a9ab.cornelia.huck@de.ibm.com \
    --to=cornelia.huck@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --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).