From: Peter Xu <peterx@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Cc: "Alexandr Moshkov" <dtalexundeer@yandex-team.ru>,
qemu-devel@nongnu.org, "Raphael Norwitz" <raphael@enfabrica.net>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Stefano Garzarella" <sgarzare@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Eric Blake" <eblake@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>
Subject: Re: [PATCH v3 0/3] vhost-user-blk: support inflight migration
Date: Tue, 18 Nov 2025 17:05:17 -0500 [thread overview]
Message-ID: <aRztnfZFl-OcbVYI@x1.local> (raw)
In-Reply-To: <cf0f69b9-4b2b-4c09-a32b-ad86bbe04f6d@yandex-team.ru>
On Tue, Nov 18, 2025 at 11:24:12PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Add Daniel
>
> On 10.11.25 13:39, Alexandr Moshkov wrote:
> > v3:
> > - use pre_load_errp instead of pre_load in vhost.c
> > - change vhost-user-blk property to
> > "skip-get-vring-base-inflight-migration"
> > - refactor vhost-user-blk.c, by moving vhost_user_blk_inflight_needed() higher
> >
> > v2:
> > - rewrite migration using VMSD instead of qemufile API
> > - add vhost-user-blk parameter instead of migration capability
> >
> > I don't know if VMSD was used cleanly in migration implementation, so
> > feel free for comments.
> >
> > Based on Vladimir's work:
> > [PATCH v2 00/25] vhost-user-blk: live-backend local migration
> > which was based on:
> > - [PATCH v4 0/7] chardev: postpone connect
> > (which in turn is based on [PATCH 0/2] remove deprecated 'reconnect' options)
> > - [PATCH v3 00/23] vhost refactoring and fixes
> > - [PATCH v8 14/19] migration: introduce .pre_incoming() vmsd handler
> >
>
> Hi!
>
> On my series about backend-transfer migration, the final consensus (or at least,
> I hope that it's a consensus:) is that using device properties to control migration
> channel content is wrong. And we should instead use migration parameters.
>
> (discussion here: https://lore.kernel.org/qemu-devel/29aa1d66-9fa7-4e44-b0e3-2ca26e77accf@yandex-team.ru/ )
>
> So the API for backend-transfer features is a migration parameter
>
> backend-transfer = [ list of QOM paths of devices, for which we want to enable backend-transfer ]
>
> and user don't have to change device properties in runtime to setup the following migration.
>
> So I assume, similar practice should be applied here: don't use device
> properties to control migration.
>
> So, should it be a parameter like
>
> migrate-inflight-region = [ list of QOM paths of vhost-user devices ]
>
> ?
I have concern that if we start doing this more, migration qapi/ will be
completely messed up.
Imagine a world where there'll be tons of lists like:
migrate-dev1-some-feature-1 = [list of devices (almost only dev1 typed)]
migrate-dev2-some-feature-2 = [list of devices (almost only dev2 typed)]
migrate-dev3-some-feature-3 = [list of devices (almost only dev3 typed)]
...
That doesn't look reasonable at all. If some feature is likely only
supported in one device, that should not appear in migration.json but only
in the specific device.
I don't think I'm fully convinced we can't enable some form of machine type
properties (with QDEV or not) on backends we should stick with something
like that. I can have some closer look this week, but.. even if not, I
still think migration shouldn't care about some specific behavior of a
specific device.
If we really want to have some way to probe device features, maybe we
should also think about a generic interface (rather than "one new list
every time"). We also have some recent discussions on a proper interface
to query TAP backend features like USO*. Maybe they share some of the
goals here.
Thanks,
--
Peter Xu
prev parent reply other threads:[~2025-11-18 22:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-10 10:39 [PATCH v3 0/3] vhost-user-blk: support inflight migration Alexandr Moshkov
2025-11-10 10:39 ` [PATCH v3 1/3] vmstate: introduce VMSTATE_VBUFFER_UINT64 Alexandr Moshkov
2025-11-10 10:39 ` [PATCH v3 2/3] vhost: add vmstate for inflight region with inner buffer Alexandr Moshkov
2025-11-10 10:39 ` [PATCH v3 3/3] vhost-user-blk: support inter-host inflight migration Alexandr Moshkov
2025-11-18 20:24 ` [PATCH v3 0/3] vhost-user-blk: support " Vladimir Sementsov-Ogievskiy
2025-11-18 22:05 ` Peter Xu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aRztnfZFl-OcbVYI@x1.local \
--to=peterx@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dtalexundeer@yandex-team.ru \
--cc=eblake@redhat.com \
--cc=farosas@suse.de \
--cc=hreitz@redhat.com \
--cc=kwolf@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=raphael@enfabrica.net \
--cc=sgarzare@redhat.com \
--cc=vsementsov@yandex-team.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).