All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org, dgilbert@redhat.com, lvivier@redhat.com
Subject: Re: [Qemu-devel] [PATCH 2/3] migration: Remove use of old MigrationParams
Date: Mon, 15 May 2017 18:05:30 +0800	[thread overview]
Message-ID: <20170515100530.GA31572@pxdev.xzpeter.org> (raw)
In-Reply-To: <877f1mgx9h.fsf@secure.mitica>

On Fri, May 12, 2017 at 12:55:22PM +0200, Juan Quintela wrote:
> Peter Xu <peterx@redhat.com> wrote:
> > On Thu, May 11, 2017 at 06:32:27PM +0200, Juan Quintela wrote:
> 
> >> @@ -1214,9 +1218,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
> >>      MigrationParams params;
> >>      const char *p;
> >>  
> >> -    params.blk = has_blk && blk;
> >> -    params.shared = has_inc && inc;
> >> -
> >>      if (migration_is_setup_or_active(s->state) ||
> >>          s->state == MIGRATION_STATUS_CANCELLING ||
> >>          s->state == MIGRATION_STATUS_COLO) {
> >> @@ -1239,6 +1240,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
> >>      }
> >>  
> >>      if (has_inc && inc) {
> >> +        migrate_set_block_enabled(s, true);
> >>          migrate_set_block_shared(s, true);
> >
> > [2]
> >
> > IIUC for [1] & [2] we are solving the same problem that "shared"
> > depends on "enabled" bit. Would it be good to unitfy this dependency
> > somewhere? E.g., by changing migrate_set_block_shared() into:
> >
> > void migrate_set_block_shared(MigrationState *s, bool value)
> > {
> >     s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_SHARED] = value;
> >     if (value) {
> >         migrate_set_block_enabled(s, true);
> >     }
> > }
> 
> ok with this.
> I will add once here that when we disable block enabled, we also disable
> shared, or just let it that way?

I should mark "nitpick" in my above comment. Any way works for me. :)

> 
> > Another thing to mention: after switching to the capability interface,
> > we'll cache the "enabled" and "shared" bits now while we don't cache
> > it before, right? IIUC it'll affect behavior of such sequence:
> >
> > - 1st migrate with enabled=1, shared=1, then
> > - 2nd migrate with enabled=0, shared=0
> >
> > Before the series, the 2nd migrate will use enabled=shared=0, but
> > after the series it should be using enabled=shared=1. Not sure whether
> > this would be a problem (or I missed anything?).
> 
> We can't be consistent with both old/new way.
> 
> Old way: we always setup the capabilities on command line (that should
> have been deprecated long, long ago)
> 
> New way: Once set, they stay set.
> 
> So, alternatives are:
> - If we are going to deprecate the old way, just let things as they are
>   on this patch (easier for me O:-)
> 
> - Always disable this features at the end of migration: Compatible with
>   old migration semantics, bet we are inconsistent with all other
>   capabilities.
> 
> - Add yet more code to only disable them when we are setting them
>   through the command line.  More code to maintain.
> 
> My idea would be to deprecate the migrate command line parameter, that
> is the reason why I did the 1st option.  I hope that in due curse, we
> would be able to remove the code.  But if anyone strongly think that any
> of the other options is better, please let me know.

I assume that sending continuous "migrate" is very rare, right (after
all, normally source VM is useless after that...)? I was just trying
to post this question up, and so... If you/Dave/others won't worry
about its compatibility, I won't either. ;)

Thanks!

-- 
Peter Xu

  parent reply	other threads:[~2017-05-15 10:05 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-11 16:32 [Qemu-devel] [PATCH v2 0/3] Remove old MigrationParams Juan Quintela
2017-05-11 16:32 ` [Qemu-devel] [PATCH 1/3] migration: Create block capabilities for shared and enable Juan Quintela
2017-05-12 19:52   ` Eric Blake
2017-05-15  9:41     ` Juan Quintela
2017-05-15  9:46       ` Dr. David Alan Gilbert
2017-05-15 14:24         ` Eric Blake
2017-05-15 15:38           ` Markus Armbruster
2017-05-15 16:06             ` Juan Quintela
2017-05-16  6:49               ` Markus Armbruster
2017-05-15 15:56           ` Juan Quintela
2017-05-11 16:32 ` [Qemu-devel] [PATCH 2/3] migration: Remove use of old MigrationParams Juan Quintela
2017-05-12  3:40   ` Peter Xu
2017-05-12 10:55     ` Juan Quintela
2017-05-12 19:59       ` Eric Blake
2017-05-15  9:48         ` Juan Quintela
2017-05-15 10:43           ` Dr. David Alan Gilbert
2017-05-15 14:28           ` Eric Blake
2017-05-15 15:59             ` Juan Quintela
2017-05-15 16:06           ` Markus Armbruster
2017-05-15 16:33             ` Juan Quintela
2017-05-15 16:38               ` Dr. David Alan Gilbert
2017-05-15 16:56                 ` Juan Quintela
2017-05-15 17:27                   ` Dr. David Alan Gilbert
2017-05-15 17:35                     ` Juan Quintela
2017-05-15 17:38                       ` Dr. David Alan Gilbert
2017-05-15 17:45                         ` Juan Quintela
2017-05-15 18:32                           ` Dr. David Alan Gilbert
2017-05-16  7:25               ` Markus Armbruster
2017-05-16  8:00                 ` Juan Quintela
2017-05-15 10:05       ` Peter Xu [this message]
2017-05-11 16:32 ` [Qemu-devel] [PATCH 3/3] migration: Remove " Juan Quintela
2017-05-12  2:01 ` [Qemu-devel] [PATCH v2 0/3] " Hailiang Zhang
  -- strict thread matches above, loose matches on Subject: below --
2017-04-25 10:30 [Qemu-devel] [PATCH " Juan Quintela
2017-04-25 10:30 ` [Qemu-devel] [PATCH 2/3] migration: Remove use of " Juan Quintela
2017-04-28 16:55   ` Dr. David Alan Gilbert
2017-05-04  8:51     ` Juan Quintela
2017-05-04  9:14       ` Hailiang Zhang
2017-05-11 16:33         ` Juan Quintela
2017-05-12  2:02           ` Hailiang Zhang
2017-04-28 18:49   ` Eric Blake

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=20170515100530.GA31572@pxdev.xzpeter.org \
    --to=peterx@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.