On Mon, Jan 12, 2026 at 04:45:03PM +0500, Alexandr Moshkov wrote: > During inter-host migration, waiting for disk requests to be drained > in the vhost-user backend can incur significant downtime. > > This can be avoided if QEMU migrates the inflight region in > vhost-user-blk. > Thus, during the qemu migration, with feature flag the vhost-user > back-end can immediately stop vrings, so all in-flight requests will be > migrated to another host. > > Signed-off-by: Alexandr Moshkov <[email protected]> > --- > hw/block/vhost-user-blk.c | 28 ++++++++++++++++++++++++++++ > include/hw/virtio/vhost-user-blk.h | 1 + > 2 files changed, 29 insertions(+) > > diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c > index a8fd90480a..5e44f6253c 100644 > --- a/hw/block/vhost-user-blk.c > +++ b/hw/block/vhost-user-blk.c > @@ -656,6 +656,28 @@ static struct vhost_dev > *vhost_user_blk_get_vhost(VirtIODevice *vdev) > return &s->dev; > } > > +static bool vhost_user_blk_inflight_needed(void *opaque) > +{ > + struct VHostUserBlk *s = opaque; > + > + bool inflight_drain = vhost_dev_has_feature(&s->dev, > + VHOST_USER_PROTOCOL_F_GET_VRING_BASE_INFLIGHT);
VHOST_USER_PROTOCOL_F_GET_VRING_BASE_INFLIGHT must only be negotiated when inflight_migration is enabled. Otherwise the backend will use this feature even though vhost_user_blk_inflight_needed() skips migrating the in-flight region.
signature.asc
Description: PGP signature
