Re: [PATCH v5 5/5] vhost-user-blk: support inter-host inflight migration
Alexandr Moshkov <[email protected]> Tue, 13 Jan 2026 11:49:20 +0500
| Newsgroups | dev.linux.lists.virtio-fs,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
On 1/12/26 23:19, Stefan Hajnoczi wrote: > 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. Oh, I understand now. I'll fix this too, thanks!