QE tested this series v3 with virtio-net regression tests, everything works fine.
Tested-by: Lei Yang <leiy...@redhat.com> On Thu, Mar 27, 2025 at 2:46 PM Haoqian He <haoqian...@smartx.com> wrote: > At the end of the VM live migration, the vhost device will be stopped. > Currently, if the vhost-user backend crashes, vhost device's set_status() > would not return failure, live migration won't perceive the disconnection > with the backend. After the live migration is successful, the stale > inflight > IO will be submitted to the migration target host, which may be leading to > the IO error. > > The following patch series fixes the issue by making the live migration > aware of the loss of connection with the vhost-user backend and aborting > the live migration. > > --- > v1 ... v2 > 1. Fix some grammar issues in commit message. > 2. Remove assert in vhost_scsi_common_stop and return error upwards. > > v2 ... v3 > 1. Added more detailed comments and commit message. > 2. Change the newly added type name and parameter name. > 3. Remove set_status_ext, change the return type of set_status to int. > > Haoqian He (3): > system/runstate: add VM state change cb with return value > vhost: return failure if stop virtqueue failed in vhost_dev_stop > vhost-user: return failure if backend crash when live migration > > backends/vhost-user.c | 20 +++++++-------- > hw/block/vhost-user-blk.c | 27 +++++++++++--------- > hw/block/virtio-blk.c | 7 +++--- > hw/char/virtio-serial-bus.c | 3 ++- > hw/core/vm-change-state-handler.c | 18 ++++++++----- > hw/display/vhost-user-gpu.c | 12 ++++++--- > hw/input/virtio-input.c | 3 ++- > hw/net/virtio-net.c | 3 ++- > hw/scsi/scsi-bus.c | 2 +- > hw/scsi/vhost-scsi-common.c | 13 +++++----- > hw/scsi/vhost-scsi.c | 5 ++-- > hw/scsi/vhost-user-scsi.c | 18 +++++++------ > hw/vfio/migration.c | 2 +- > hw/virtio/vdpa-dev.c | 5 ++-- > hw/virtio/vhost-user-base.c | 23 ++++++++++------- > hw/virtio/vhost-user-fs.c | 23 ++++++++++------- > hw/virtio/vhost-user-scmi.c | 27 ++++++++++++-------- > hw/virtio/vhost-user-vsock.c | 15 +++++++---- > hw/virtio/vhost-vsock-common.c | 12 ++++----- > hw/virtio/vhost-vsock.c | 11 ++++---- > hw/virtio/vhost.c | 23 +++++++++-------- > hw/virtio/virtio-balloon.c | 3 ++- > hw/virtio/virtio-crypto.c | 3 ++- > hw/virtio/virtio-iommu.c | 3 ++- > hw/virtio/virtio-rng.c | 5 ++-- > hw/virtio/virtio.c | 23 +++++++++++------ > include/hw/virtio/vhost-scsi-common.h | 2 +- > include/hw/virtio/vhost-vsock-common.h | 2 +- > include/hw/virtio/vhost.h | 8 +++--- > include/hw/virtio/virtio.h | 2 +- > include/system/runstate.h | 13 +++++++--- > include/system/vhost-user-backend.h | 2 +- > system/cpus.c | 8 ++++-- > system/runstate.c | 35 ++++++++++++++++++++++---- > 34 files changed, 239 insertions(+), 142 deletions(-) > > -- > 2.44.0 > > >