qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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 :|



  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).