From: Cornelia Huck <cohuck@redhat.com>
To: Stefano Garzarella <sgarzare@redhat.com>
Cc: Thomas Huth <thuth@redhat.com>, Qinghua Cheng <qcheng@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-stable@nongnu.org, David Hildenbrand <david@redhat.com>,
qemu-devel@nongnu.org,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-s390x@nongnu.org, Richard Henderson <rth@twiddle.net>,
Qian Cai <caiqian@redhat.com>
Subject: Re: [PATCH v3 2/4] vhost-vsock-pci: force virtio version 1
Date: Fri, 18 Sep 2020 11:19:01 +0200 [thread overview]
Message-ID: <20200918111901.7b8862b3.cohuck@redhat.com> (raw)
In-Reply-To: <20200918074710.27810-3-sgarzare@redhat.com>
On Fri, 18 Sep 2020 09:47:08 +0200
Stefano Garzarella <sgarzare@redhat.com> wrote:
> Commit 9b3a35ec82 ("virtio: verify that legacy support is not
> accidentally on") added a safety check that requires to set
> 'disable-legacy=on' on vhost-vsock-pci device:
>
> $ ./qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=5
> qemu-system-x86_64: -device vhost-vsock-pci,guest-cid=5:
> device is modern-only, use disable-legacy=on
>
> virtio-vsock was introduced after the release of VIRTIO 1.0
> specifications, so it should be 'modern-only'.
> In addition Cornelia verified that forcing a legacy mode on
> vhost-vsock-pci device using x86-64 host and s390x guest, so with
> different endianness, produces strange behaviours.
>
> This patch forces virtio version 1 and removes the 'transitional_name'
> property removing the need to specify 'disable-legacy=on' on
> vhost-vsock-pci device.
>
> To avoid migration issues, we force virtio version 1 only when
> legacy check is enabled in the new machine types (>= 5.1).
>
> Cc: qemu-stable@nongnu.org
> Reported-by: Qian Cai <caiqian@redhat.com>
> Reported-by: Qinghua Cheng <qcheng@redhat.com>
> Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1868449
> Suggested-by: Cornelia Huck <cohuck@redhat.com>
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
> v3:
> - forced virtio version 1 only with new machine types
> v2:
> - fixed commit message [Cornelia]
> ---
> hw/virtio/vhost-vsock-pci.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c
> index e56067b427..205da8d1f5 100644
> --- a/hw/virtio/vhost-vsock-pci.c
> +++ b/hw/virtio/vhost-vsock-pci.c
> @@ -44,6 +44,15 @@ static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> {
> VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
> DeviceState *vdev = DEVICE(&dev->vdev);
> + VirtIODevice *virtio_dev = VIRTIO_DEVICE(vdev);
> +
> + /*
> + * To avoid migration issues, we force virtio version 1 only when
> + * legacy check is enabled in the new machine types (>= 5.1).
> + */
> + if (!virtio_legacy_check_disabled(virtio_dev)) {
> + virtio_pci_force_virtio_1(vpci_dev);
> + }
>
> qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
> }
> @@ -73,7 +82,6 @@ static void vhost_vsock_pci_instance_init(Object *obj)
> static const VirtioPCIDeviceTypeInfo vhost_vsock_pci_info = {
> .base_name = TYPE_VHOST_VSOCK_PCI,
> .generic_name = "vhost-vsock-pci",
> - .transitional_name = "vhost-vsock-pci-transitional",
Hm... this means that vhost-vsock-pci-transitional won't work on compat
machines, which could also lead to migration compatibility issues (I
think?)
Is this way of specifying the device sufficiently uncommon so that we
can ignore that?
> .non_transitional_name = "vhost-vsock-pci-non-transitional",
> .instance_size = sizeof(VHostVSockPCI),
> .instance_init = vhost_vsock_pci_instance_init,
next prev parent reply other threads:[~2020-09-18 9:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-18 7:47 [PATCH v3 0/4] vhost-vsock: force virtio version 1 Stefano Garzarella
2020-09-18 7:47 ` [PATCH v3 1/4] virtio: skip legacy support check on machine types less than 5.1 Stefano Garzarella
2020-09-18 9:13 ` Cornelia Huck
2020-09-18 9:35 ` Stefano Garzarella
2020-09-18 7:47 ` [PATCH v3 2/4] vhost-vsock-pci: force virtio version 1 Stefano Garzarella
2020-09-18 9:19 ` Cornelia Huck [this message]
2020-09-18 10:00 ` Stefano Garzarella
2020-09-18 7:47 ` [PATCH v3 3/4] vhost-user-vsock-pci: " Stefano Garzarella
2020-09-18 9:23 ` Cornelia Huck
2020-09-18 10:01 ` Stefano Garzarella
2020-09-18 7:47 ` [PATCH v3 4/4] vhost-vsock-ccw: " Stefano Garzarella
2020-09-18 9:24 ` Cornelia Huck
2020-09-18 8:00 ` [PATCH v3 0/4] vhost-vsock: " no-reply
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=20200918111901.7b8862b3.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=caiqian@redhat.com \
--cc=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=mst@redhat.com \
--cc=pasic@linux.ibm.com \
--cc=qcheng@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=rth@twiddle.net \
--cc=sgarzare@redhat.com \
--cc=thuth@redhat.com \
/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).