From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Steven Sistare <steven.sistare@oracle.com>
Cc: qemu-devel@nongnu.org, Juan Quintela <quintela@redhat.com>,
Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>,
Leonardo Bras <leobras@redhat.com>
Subject: Re: [PATCH V1 2/4] migration: per-mode blockers
Date: Mon, 23 Oct 2023 16:02:54 +0100 [thread overview]
Message-ID: <ZTaLHpkG9DttRn9n@redhat.com> (raw)
In-Reply-To: <61ccb916-e50f-4b05-a5bd-5fcf8bf0177f@oracle.com>
On Mon, Oct 23, 2023 at 10:37:59AM -0400, Steven Sistare wrote:
> On 10/23/2023 8:46 AM, Daniel P. Berrangé wrote:
> > On Thu, Oct 19, 2023 at 01:47:44PM -0700, Steve Sistare wrote:
> >> Extend the blocker interface so that a blocker can be registered for
> >> one or more migration modes. The existing interfaces register a
> >> blocker for all modes, and the new interfaces take a varargs list
> >> of modes.
> >>
> >> Internally, maintain a separate blocker list per mode. The same Error
> >> object may be added to multiple lists. When a block is deleted, it is
> >> removed from every list, and the Error is freed.
> >
> > I'm not sure that assocating blockers with migration modes is
> > the optimal way to model this.
> >
> > IIUC, some of the migration blockers exist because the feature
> > relies on state that only exists on the current host.
> >
> > This isn't a problem with CPR since the migration is within
> > the same host. At the time though, these blockers should
> > likely be redundant for a normal migration that uses "localhost".
> >
> > We can't express the distinction between localhost-migrate
> > and cross-host-migrate historically, but we should have done.
> > This new patch largely enables that I think which is good.
> >
> > What I think this means is that we shouldn't tie blockers
> > to modes, but rather have different types of blockers as
> > a bit set
> >
> > enum MigrationBlockerType {
> > MIGRATION_BLOCKER_LOCAL_HOST = (1 << 0),
> > MIGRATION_BLOCKER_CROSS_HOST = (1 << 1),
> > };
> >
> > #define MIGRATION_BLOCKER_ALL 0xff
> >
> >
> > Cpr would check for blockers with MIGRATION_BLOCKER_LOCAL_HOST
> > set only.
> >
> > Normal migration within localhost only would similarly only
> > check MIGRATION_BLOCKER_LOCAL_HOST
> >
> > Normal migration between arbitrary host would check for
> > MIGRATION_BLOCKER_LOCAL_HOST and MIGRATION_BLOCKER_CROSS_HOST
>
> Or, we could define MIG_MODE_LOCAL to relax the blockers for local migrations.
> The user would add mode explicitly to the migrate command, or we could
> implicitly switch from normal mode to local mode if we infer that the src
> and target are the same node. MIG_MODE_LOCAL and MIG_MODE_CPR_REBOOT would
> relax the same blockers for now, but conceivably that could change.
>
> When I add cpr-exec mode, it will have its own mode-specific blockers.
> But, in your scheme, it could map to a new MigrationBlockerType.
Yes, there could be further types of blocker.
Do you have an example of something that would be a CPR blocker
only ?
I was thinking that migration blockers have a functional classification
which motivates their existance.
The different migration modes are describing particular usage
scenarios, and a given usage scenario will imply blockers for
one or more functional reasons.
> I do prefer mode as the way of specifying the type of migration.
Sure, I didn't mean to suggest "mode" as an input to 'migrate'
is bad. Just that I see migration blockers classification as
being distinct from the 'mode'. So a user could specify 'mode'
with 'migrate' and that ends up mapping to certain types of
blocker.
> The question is whether we map mode directly to blockers, or map mode
> plus other criteria such as locality to MigrationBlockerType(s) which
> map to blockers.
>
> One consideration is, how will the user specify the equivalent of only-migratable
> on the command line? I was thinking of adding -only-migratable <mode1,mode2,...>
> in a future patch, but if additional criteria maps to blockers, then we need
> additional options or syntax.
I guess I could see wanting to use --only-migratable to express that I
want a guest that can do a localhost-migration, and CPR, but don't
care about cross-host-migration, which would point towards blocker
types being exposed.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2023-10-23 15:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-19 20:47 [PATCH V1 0/4] Live Update reboot mode Steve Sistare
2023-10-19 20:47 ` [PATCH V1 1/4] migration: mode parameter Steve Sistare
2023-10-20 9:29 ` Juan Quintela
2023-10-20 14:08 ` Steven Sistare
2023-10-20 19:38 ` Juan Quintela
2023-10-20 22:14 ` Steven Sistare
2023-10-19 20:47 ` [PATCH V1 2/4] migration: per-mode blockers Steve Sistare
2023-10-20 9:36 ` Juan Quintela
2023-10-23 12:46 ` Daniel P. Berrangé
2023-10-23 14:37 ` Steven Sistare
2023-10-23 15:02 ` Daniel P. Berrangé [this message]
2023-10-23 18:29 ` Steven Sistare
2023-10-19 20:47 ` [PATCH V1 3/4] cpr: relax some blockers Steve Sistare
2023-10-20 9:38 ` Juan Quintela
2023-10-23 15:25 ` Peter Xu
2023-10-23 12:36 ` Daniel P. Berrangé
2023-10-19 20:47 ` [PATCH V1 4/4] cpr: reboot mode Steve Sistare
2023-10-20 9:45 ` Juan Quintela
2023-10-20 14:09 ` Steven Sistare
2023-10-20 19:40 ` Juan Quintela
2023-10-23 18:39 ` Steven Sistare
2023-10-24 11:13 ` Juan Quintela
2023-10-23 15:39 ` Peter Xu
2023-10-23 18:29 ` Steven Sistare
2023-10-23 18:51 ` Steven Sistare
2023-10-23 19:05 ` Peter Xu
2023-10-23 20:06 ` Steven Sistare
2023-10-19 21:18 ` [PATCH V1 0/4] Live Update " Steven Sistare
2023-10-20 9:23 ` Juan Quintela
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=ZTaLHpkG9DttRn9n@redhat.com \
--to=berrange@redhat.com \
--cc=farosas@suse.de \
--cc=leobras@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=steven.sistare@oracle.com \
/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).