All of lore.kernel.org
 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, qemu-devel@nongnu.org,
	kvm@vger.kernel.org, virtualization@lists.linux-foundation.org
Subject: Re: [PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout
Date: Wed, 3 Dec 2014 12:44:58 +0100	[thread overview]
Message-ID: <20141203124458.190fd590.cornelia.huck@de.ibm.com> (raw)
In-Reply-To: <20141203111917.GD9299@redhat.com>

On Wed, 3 Dec 2014 13:19:17 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Wed, Dec 03, 2014 at 12:14:10PM +0100, Cornelia Huck wrote:
> > On Wed, 3 Dec 2014 12:52:51 +0200
> > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > 
> > > On Wed, Dec 03, 2014 at 10:50:04AM +0100, Cornelia Huck wrote:

> > > > @@ -748,6 +756,11 @@ void virtio_queue_set_align(VirtIODevice *vdev, int n, int align)
> > > >      BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
> > > >      VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
> > > >  
> > > > +    /* virtio-1 compliant devices cannot change the aligment */
> > > > +    if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
> > > > +        error_report("tried to modify queue alignment for virtio-1 device");
> > > > +        return;
> > > > +    }
> > > >      /* Check that the transport told us it was going to do this
> > > >       * (so a buggy transport will immediately assert rather than
> > > >       * silently failing to migrate this state)
> > > 
> > > Do we have to touch this now?
> > > It's only used by MMIO, right?
> > 
> > I don't think it hurts to put a guard in here.
> 
> I'd say let's not touch mmio ATM.

This is not mmio but common code :) I don't really see how this can
possibly hurt us; when mmio is converted to virtio-1, their queue setup
code needs to be changed anyway.


> > > > @@ -949,7 +961,8 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
> > > >          if (k->has_variable_vring_alignment) {
> > > >              qemu_put_be32(f, vdev->vq[i].vring.align);
> > > >          }
> > > > -        qemu_put_be64(f, vdev->vq[i].pa);
> > > > +        /* XXX virtio-1 devices */
> > > > +        qemu_put_be64(f, vdev->vq[i].vring.desc);
> > > >          qemu_put_be16s(f, &vdev->vq[i].last_avail_idx);
> > > >          if (k->save_queue) {
> > > >              k->save_queue(qbus->parent, i, f);
> > > > @@ -1044,13 +1057,14 @@ int virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id)
> > > >          if (k->has_variable_vring_alignment) {
> > > >              vdev->vq[i].vring.align = qemu_get_be32(f);
> > > >          }
> > > > -        vdev->vq[i].pa = qemu_get_be64(f);
> > > > +        vdev->vq[i].vring.desc = qemu_get_be64(f);
> > > >          qemu_get_be16s(f, &vdev->vq[i].last_avail_idx);
> > > >          vdev->vq[i].signalled_used_valid = false;
> > > >          vdev->vq[i].notification = true;
> > > >  
> > > > -        if (vdev->vq[i].pa) {
> > > > -            virtqueue_init(&vdev->vq[i]);
> > > > +        if (vdev->vq[i].vring.desc) {
> > > > +            /* XXX virtio-1 devices */
> > > 
> > > What does XXX mean here?
> > 
> > That I have not cared about migration of virtio-1 devices yet :)
> 
> OK sure, but why put comment here not at start of
> function?

I find it easier to annotate the places I notice. YMMV.

> 
> > > 
> > > > +            virtio_queue_update_rings(vdev, i);
> > > >          } else if (vdev->vq[i].last_avail_idx) {
> > > >              error_report("VQ %d address 0x0 "
> > > >                           "inconsistent with Host index 0x%x",
> 

WARNING: multiple messages have this Message-ID (diff)
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 v5 07/19] virtio: allow virtio-1 queue layout
Date: Wed, 3 Dec 2014 12:44:58 +0100	[thread overview]
Message-ID: <20141203124458.190fd590.cornelia.huck@de.ibm.com> (raw)
In-Reply-To: <20141203111917.GD9299@redhat.com>

On Wed, 3 Dec 2014 13:19:17 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Wed, Dec 03, 2014 at 12:14:10PM +0100, Cornelia Huck wrote:
> > On Wed, 3 Dec 2014 12:52:51 +0200
> > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > 
> > > On Wed, Dec 03, 2014 at 10:50:04AM +0100, Cornelia Huck wrote:

> > > > @@ -748,6 +756,11 @@ void virtio_queue_set_align(VirtIODevice *vdev, int n, int align)
> > > >      BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
> > > >      VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
> > > >  
> > > > +    /* virtio-1 compliant devices cannot change the aligment */
> > > > +    if (virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
> > > > +        error_report("tried to modify queue alignment for virtio-1 device");
> > > > +        return;
> > > > +    }
> > > >      /* Check that the transport told us it was going to do this
> > > >       * (so a buggy transport will immediately assert rather than
> > > >       * silently failing to migrate this state)
> > > 
> > > Do we have to touch this now?
> > > It's only used by MMIO, right?
> > 
> > I don't think it hurts to put a guard in here.
> 
> I'd say let's not touch mmio ATM.

This is not mmio but common code :) I don't really see how this can
possibly hurt us; when mmio is converted to virtio-1, their queue setup
code needs to be changed anyway.


> > > > @@ -949,7 +961,8 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
> > > >          if (k->has_variable_vring_alignment) {
> > > >              qemu_put_be32(f, vdev->vq[i].vring.align);
> > > >          }
> > > > -        qemu_put_be64(f, vdev->vq[i].pa);
> > > > +        /* XXX virtio-1 devices */
> > > > +        qemu_put_be64(f, vdev->vq[i].vring.desc);
> > > >          qemu_put_be16s(f, &vdev->vq[i].last_avail_idx);
> > > >          if (k->save_queue) {
> > > >              k->save_queue(qbus->parent, i, f);
> > > > @@ -1044,13 +1057,14 @@ int virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id)
> > > >          if (k->has_variable_vring_alignment) {
> > > >              vdev->vq[i].vring.align = qemu_get_be32(f);
> > > >          }
> > > > -        vdev->vq[i].pa = qemu_get_be64(f);
> > > > +        vdev->vq[i].vring.desc = qemu_get_be64(f);
> > > >          qemu_get_be16s(f, &vdev->vq[i].last_avail_idx);
> > > >          vdev->vq[i].signalled_used_valid = false;
> > > >          vdev->vq[i].notification = true;
> > > >  
> > > > -        if (vdev->vq[i].pa) {
> > > > -            virtqueue_init(&vdev->vq[i]);
> > > > +        if (vdev->vq[i].vring.desc) {
> > > > +            /* XXX virtio-1 devices */
> > > 
> > > What does XXX mean here?
> > 
> > That I have not cared about migration of virtio-1 devices yet :)
> 
> OK sure, but why put comment here not at start of
> function?

I find it easier to annotate the places I notice. YMMV.

> 
> > > 
> > > > +            virtio_queue_update_rings(vdev, i);
> > > >          } else if (vdev->vq[i].last_avail_idx) {
> > > >              error_report("VQ %d address 0x0 "
> > > >                           "inconsistent with Host index 0x%x",
> 

  reply	other threads:[~2014-12-03 11:44 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-02 13:00 [PATCH RFC v5 00/19] qemu: towards virtio-1 host support Cornelia Huck
2014-12-02 13:00 ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 01/19] linux-headers/virtio_config: Update with VIRTIO_F_VERSION_1 Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 02/19] virtio: cull virtio_bus_set_vdev_features Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 03/19] virtio: feature bit manipulation helpers Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 04/19] virtio: add feature checking helpers Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 05/19] virtio: support more feature bits Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-10 17:35   ` Cornelia Huck
2014-12-10 17:35     ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 06/19] virtio: endianness checks for virtio 1.0 devices Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 07/19] virtio: allow virtio-1 queue layout Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 14:46   ` Michael S. Tsirkin
2014-12-02 14:46     ` [Qemu-devel] " Michael S. Tsirkin
2014-12-02 14:54     ` Cornelia Huck
2014-12-02 14:54       ` [Qemu-devel] " Cornelia Huck
2014-12-02 15:41       ` Cornelia Huck
2014-12-02 15:41       ` Cornelia Huck
2014-12-02 15:41         ` [Qemu-devel] " Cornelia Huck
2014-12-02 19:03         ` Michael S. Tsirkin
2014-12-02 19:03           ` [Qemu-devel] " Michael S. Tsirkin
2014-12-03  9:27           ` Cornelia Huck
2014-12-03  9:27             ` [Qemu-devel] " Cornelia Huck
2014-12-03  9:50             ` Cornelia Huck
2014-12-03  9:50             ` Cornelia Huck
2014-12-03  9:50               ` [Qemu-devel] " Cornelia Huck
2014-12-03 10:52               ` Michael S. Tsirkin
2014-12-03 10:52                 ` [Qemu-devel] " Michael S. Tsirkin
2014-12-03 11:14                 ` Cornelia Huck
2014-12-03 11:14                   ` [Qemu-devel] " Cornelia Huck
2014-12-03 11:19                   ` Michael S. Tsirkin
2014-12-03 11:19                     ` [Qemu-devel] " Michael S. Tsirkin
2014-12-03 11:44                     ` Cornelia Huck [this message]
2014-12-03 11:44                       ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 08/19] dataplane: allow virtio-1 devices Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 09/19] s390x/css: Add a callback for when subchannel gets disabled Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 10/19] s390x/virtio-ccw: add virtio set-revision call Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-04 16:20   ` Michael S. Tsirkin
2014-12-04 16:20     ` [Qemu-devel] " Michael S. Tsirkin
2014-12-04 16:43     ` Cornelia Huck
2014-12-04 16:43       ` [Qemu-devel] " Cornelia Huck
2014-12-04 16:20   ` Michael S. Tsirkin
2014-12-02 13:00 ` [PATCH RFC v5 11/19] s390x/virtio-ccw: support virtio-1 set_vq format Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 12/19] virtio: disallow late feature changes for virtio-1 Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 13/19] virtio: allow to fail setting status Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 14/19] s390x/virtio-ccw: enable virtio 1.0 Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-09 13:46   ` Michael S. Tsirkin
2014-12-09 13:46     ` [Qemu-devel] " Michael S. Tsirkin
2014-12-09 17:24     ` Cornelia Huck
2014-12-09 17:24       ` [Qemu-devel] " Cornelia Huck
2014-12-09 17:24     ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 15/19] virtio-net: no writeable mac for virtio-1 Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 16/19] virtio-net: support longer header Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 17/19] virtio-net: enable virtio 1.0 Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 18/19] virtio: support revision-specific features Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-10 17:37   ` Cornelia Huck
2014-12-10 17:37     ` Cornelia Huck
2014-12-02 13:00 ` Cornelia Huck
2014-12-02 13:00 ` [PATCH RFC v5 19/19] virtio-blk: revision specific feature bits Cornelia Huck
2014-12-02 13:00   ` [Qemu-devel] " Cornelia Huck
2014-12-02 13: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=20141203124458.190fd590.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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.