[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH] virtio: re-order vm_running and use_started checks
From: |
Michael S. Tsirkin |
Subject: |
Re: [RFC PATCH] virtio: re-order vm_running and use_started checks |
Date: |
Fri, 4 Nov 2022 11:56:35 -0400 |
On Fri, Oct 14, 2022 at 02:21:08PM +0100, Alex Bennée wrote:
> During migration the virtio device state can be restored before we
> restart the VM. As no devices can be running while the VM is paused it
> makes sense to bail out early in that case.
>
> This returns the order introduced in:
>
> 9f6bcfd99f (hw/virtio: move vm_running check to virtio_device_started)
>
> to what virtio-sock was doing longhand.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
What happens now:
with this applied I get:
https://gitlab.com/mitsirkin/qemu/-/pipelines/685829158/failures
――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
stderr:
qemu-system-arm: Failed to write msg. Wrote -1 instead of 20.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: -chardev
socket,id=chr-reconnect,path=/tmp/vhost-test-QLKXU1/reconnect.sock,server=on:
info: QEMU waiting for connection on:
disconnected:unix:/tmp/vhost-test-QLKXU1/reconnect.sock,server=on
qemu-system-arm: Failed to write msg. Wrote -1 instead of 20.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: -chardev
socket,id=chr-connect-fail,path=/tmp/vhost-test-L9Q6U1/connect-fail.sock,server=on:
info: QEMU waiting for connection on:
disconnected:unix:/tmp/vhost-test-L9Q6U1/connect-fail.sock,server=on
qemu-system-arm: -netdev
vhost-user,id=hs0,chardev=chr-connect-fail,vhostforce=on: Failed to read msg
header. Read 0 instead of 12. Original request 1.
qemu-system-arm: -netdev
vhost-user,id=hs0,chardev=chr-connect-fail,vhostforce=on: vhost_backend_init
failed: Protocol error
qemu-system-arm: -netdev
vhost-user,id=hs0,chardev=chr-connect-fail,vhostforce=on: failed to init
vhost_net for queue 0
qemu-system-arm: -netdev
vhost-user,id=hs0,chardev=chr-connect-fail,vhostforce=on: info: QEMU waiting
for connection on:
disconnected:unix:/tmp/vhost-test-L9Q6U1/connect-fail.sock,server=on
qemu-system-arm: Failed to write msg. Wrote -1 instead of 20.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: -chardev
socket,id=chr-flags-mismatch,path=/tmp/vhost-test-3MO5U1/flags-mismatch.sock,server=on:
info: QEMU waiting for connection on:
disconnected:unix:/tmp/vhost-test-3MO5U1/flags-mismatch.sock,server=on
qemu-system-arm: Failed to write msg. Wrote -1 instead of 52.
qemu-system-arm: vhost_set_mem_table failed: Invalid argument (22)
qemu-system-arm: unable to start vhost net: 22: falling back on userspace virtio
vhost lacks feature mask 0x40000000 for backend
qemu-system-arm: failed to init vhost_net for queue 0
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to write msg. Wrote -1 instead of 20.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 2 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 3 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to write msg. Wrote -1 instead of 20.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to write msg. Wrote -1 instead of 20.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost_set_vring_call failed: Invalid argument (22)
qemu-system-arm: Failed to set msg fds.
qemu-system-arm: vhost_set_vring_call failed: Invalid argument (22)
qemu-system-arm: Failed to write msg. Wrote -1 instead of 20.
qemu-system-arm: vhost VQ 0 ring restore failed: -5: Input/output error (5)
qemu-system-arm: ../hw/virtio/virtio-bus.c:211: void
virtio_bus_release_ioeventfd(VirtioBusState *): Assertion
`bus->ioeventfd_grabbed != 0' failed.
../tests/qtest/libqtest.c:188: kill_qemu() detected QEMU death from signal 6
(Aborted) (core dumped)
**
ERROR:../tests/qtest/qos-test.c:191:subprocess_run_one_test: child process
(/arm/virt/virtio-mmio/virtio-bus/vhost-user-gpio-device/vhost-user-gpio/vhost-user-gpio-tests/read-guest-mem/memfile/subprocess
[8735]) failed unexpectedly
(test program exited with status code -6)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
without this it passes:
https://gitlab.com/mitsirkin/qemu/-/jobs/3275949777
this only triggers under github, clang-system job.
trying to decide what to do now. revert just this?
> ---
> include/hw/virtio/virtio.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index f41b4a7e64..ebb58feaac 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -385,14 +385,14 @@ static inline bool virtio_is_big_endian(VirtIODevice
> *vdev)
>
> static inline bool virtio_device_started(VirtIODevice *vdev, uint8_t status)
> {
> - if (vdev->use_started) {
> - return vdev->started;
> - }
> -
> if (!vdev->vm_running) {
> return false;
> }
>
> + if (vdev->use_started) {
> + return vdev->started;
> + }
> +
> return status & VIRTIO_CONFIG_S_DRIVER_OK;
> }
>
> --
> 2.34.1
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Michael S. Tsirkin, 2022/11/03
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks,
Michael S. Tsirkin <=
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Christian Borntraeger, 2022/11/04
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Michael S. Tsirkin, 2022/11/04
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Michael S. Tsirkin, 2022/11/04
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Christian Borntraeger, 2022/11/04
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Christian Borntraeger, 2022/11/04
- Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Michael S. Tsirkin, 2022/11/04
Re: [RFC PATCH] virtio: re-order vm_running and use_started checks, Alex Bennée, 2022/11/04