mbox series

[0/3] vhost-vsock: force virtio version 1

Message ID 20200819105156.54163-1-sgarzare@redhat.com (mailing list archive)
Headers show
Series vhost-vsock: force virtio version 1 | expand

Message

Stefano Garzarella Aug. 19, 2020, 10:51 a.m. UTC
Recenlty changes in QEMU 5.1 requires to set 'disable-legacy=3Don'
on vhost-vsock-pci and vhost-user-vsock-pci devices:

    $ ./qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=3D5
        qemu-system-x86_64: -device vhost-vsock-pci,guest-cid=3D5:
        device is modern-only, use disable-legacy=3Don

As discussed with Cornelia [1], this series force virtio version 1
to vhost-vsock-pci, vhost-user-vsock-pci, and vhost-vsock-ccw devices.

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.

About migration, QEMU 5.1 already requires that the source and destination
specify 'disable-legacy=3Don', otherwise the migration fails in this way:
    qemu-system-x86_64: get_pci_config_device: Bad config data: i=3D0x2 read:=
 12 device: 53 cmask: ff wmask: 0 w1cmask:0
    qemu-system-x86_64: Failed to load PCIDevice:config
    qemu-system-x86_64: Failed to load virtio-vhost_vsock:virtio
    qemu-system-x86_64: error while loading state for instance 0x0 of device =
'0000:00:03.0/virtio-vhost_vsock'
    qemu-system-x86_64: load of migration failed: Invalid argument

With this series applied there is the same requirements. Alternatively
we have to detach and re-attach the device manually.

Thanks,
Stefano

[1] https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg02515.html

Stefano Garzarella (3):
  vhost-vsock-pci: force virtio version 1
  vhost-user-vsock-pci: force virtio version 1
  vhost-vsock-ccw: force virtio version 1

 hw/s390x/vhost-vsock-ccw.c       | 2 ++
 hw/virtio/vhost-user-vsock-pci.c | 2 +-
 hw/virtio/vhost-vsock-pci.c      | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

--=20
2.26.2

Comments

David Hildenbrand Aug. 19, 2020, 11:06 a.m. UTC | #1
On 19.08.20 12:51, Stefano Garzarella wrote:
> Recenlty changes in QEMU 5.1 requires to set 'disable-legacy=3Don'
> on vhost-vsock-pci and vhost-user-vsock-pci devices:
> 
>     $ ./qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=3D5
>         qemu-system-x86_64: -device vhost-vsock-pci,guest-cid=3D5:
>         device is modern-only, use disable-legacy=3Don

Something seemed to messed up your encoding (= vs. =3D). The patches
look fine, though. (did you copy and paste this from somewhere?)

> 
> As discussed with Cornelia [1], this series force virtio version 1
> to vhost-vsock-pci, vhost-user-vsock-pci, and vhost-vsock-ccw devices.
> 
> 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.
> 
> About migration, QEMU 5.1 already requires that the source and destination
> specify 'disable-legacy=3Don', otherwise the migration fails in this way:
>     qemu-system-x86_64: get_pci_config_device: Bad config data: i=3D0x2 read:=
>  12 device: 53 cmask: ff wmask: 0 w1cmask:0
>     qemu-system-x86_64: Failed to load PCIDevice:config
>     qemu-system-x86_64: Failed to load virtio-vhost_vsock:virtio
>     qemu-system-x86_64: error while loading state for instance 0x0 of device =
> '0000:00:03.0/virtio-vhost_vsock'
>     qemu-system-x86_64: load of migration failed: Invalid argument
> 
> With this series applied there is the same requirements. Alternatively
> we have to detach and re-attach the device manually.
> 
> Thanks,
> Stefano
> 
> [1] https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg02515.html
> 
> Stefano Garzarella (3):
>   vhost-vsock-pci: force virtio version 1
>   vhost-user-vsock-pci: force virtio version 1
>   vhost-vsock-ccw: force virtio version 1
> 
>  hw/s390x/vhost-vsock-ccw.c       | 2 ++
>  hw/virtio/vhost-user-vsock-pci.c | 2 +-
>  hw/virtio/vhost-vsock-pci.c      | 2 +-
>  3 files changed, 4 insertions(+), 2 deletions(-)
> 
> --=20

^ also here

> 2.26.2
>
Stefano Garzarella Aug. 19, 2020, 11:21 a.m. UTC | #2
On Wed, Aug 19, 2020 at 01:06:55PM +0200, David Hildenbrand wrote:
> On 19.08.20 12:51, Stefano Garzarella wrote:
> > Recenlty changes in QEMU 5.1 requires to set 'disable-legacy=3Don'
> > on vhost-vsock-pci and vhost-user-vsock-pci devices:
> > 
> >     $ ./qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=3D5
> >         qemu-system-x86_64: -device vhost-vsock-pci,guest-cid=3D5:
> >         device is modern-only, use disable-legacy=3Don
> 
> Something seemed to messed up your encoding (= vs. =3D). The patches
> look fine, though. (did you copy and paste this from somewhere?)

mmm, I used git-publish and I copied it from the first commint of the
series.

Re-opening the cover letter with git-publish everything looks okay, so
maybe the issue happened when sending it...

> 
> > 
> > As discussed with Cornelia [1], this series force virtio version 1
> > to vhost-vsock-pci, vhost-user-vsock-pci, and vhost-vsock-ccw devices.
> > 
> > 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.
> > 
> > About migration, QEMU 5.1 already requires that the source and destination
> > specify 'disable-legacy=3Don', otherwise the migration fails in this way:
> >     qemu-system-x86_64: get_pci_config_device: Bad config data: i=3D0x2 read:=
> >  12 device: 53 cmask: ff wmask: 0 w1cmask:0
> >     qemu-system-x86_64: Failed to load PCIDevice:config
> >     qemu-system-x86_64: Failed to load virtio-vhost_vsock:virtio
> >     qemu-system-x86_64: error while loading state for instance 0x0 of device =
> > '0000:00:03.0/virtio-vhost_vsock'
> >     qemu-system-x86_64: load of migration failed: Invalid argument
> > 
> > With this series applied there is the same requirements. Alternatively
> > we have to detach and re-attach the device manually.
> > 
> > Thanks,
> > Stefano
> > 
> > [1] https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg02515.html
> > 
> > Stefano Garzarella (3):
> >   vhost-vsock-pci: force virtio version 1
> >   vhost-user-vsock-pci: force virtio version 1
> >   vhost-vsock-ccw: force virtio version 1
> > 
> >  hw/s390x/vhost-vsock-ccw.c       | 2 ++
> >  hw/virtio/vhost-user-vsock-pci.c | 2 +-
> >  hw/virtio/vhost-vsock-pci.c      | 2 +-
> >  3 files changed, 4 insertions(+), 2 deletions(-)
> > 
> > --=20
> 
> ^ also here

Everywhere :-(

I'll check my configuration.

Thanks for pointing that out,
Stefano