From: "Eduardo Habkost" <ehabkost@redhat.com>
To: Peter Xu <peterx@redhat.com>
Cc: qemu-devel@nongnu.org, Laurent Vivier <lvivier@redhat.com>,
Juan Quintela <quintela@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v5 04/10] migration: let MigrationState be a qdev
Date: Mon, 26 Jun 2017 21:54:37 -0300 [thread overview]
Message-ID: <20170627005437.GK12152@localhost.localdomain> (raw)
In-Reply-To: <20170626025035.GH3936@pxdev.xzpeter.org>
On Mon, Jun 26, 2017 at 10:50:35AM +0800, Peter Xu wrote:
> On Fri, Jun 23, 2017 at 07:18:19PM -0300, Eduardo Habkost wrote:
> > On Fri, Jun 23, 2017 at 12:46:40PM +0800, Peter Xu wrote:
> > > Let the old man "MigrationState" join the object family. Direct benefit
> > > is that we can start to use all the property features derived from
> > > current QDev, like: HW_COMPAT_* bits, command line setup for migration
> > > parameters (so will never need to set them up each time using HMP/QMP,
> > > this is really, really attractive for test writters), etc.
> > >
> > > I see no reason to disallow this happen yet. So let's start from this
> > > one, to see whether it would be anything good.
> > >
> > > Now we init the MigrationState struct statically in main() to make sure
> > > it's initialized after global properties are applied, since we'll use
> > > them during creation of the object.
> > >
> > > No functional change at all.
> > >
> > > Reviewed-by: Juan Quintela <quintela@redhat.com>
> > > Signed-off-by: Peter Xu <peterx@redhat.com>
> > > ---
> > > include/migration/misc.h | 1 +
> > > migration/migration.c | 78 ++++++++++++++++++++++++++++++++++--------------
> > > migration/migration.h | 19 ++++++++++++
> > > vl.c | 6 ++++
> > > 4 files changed, 81 insertions(+), 23 deletions(-)
> > >
> > [...]
> > > diff --git a/vl.c b/vl.c
> > > index cdd2ec8..9b04ba7 100644
> > > --- a/vl.c
> > > +++ b/vl.c
> > > @@ -4596,6 +4596,12 @@ int main(int argc, char **argv, char **envp)
> > > */
> > > register_global_properties(current_machine);
> > >
> > > + /*
> > > + * Migration object can only be created after global properties
> > > + * are applied correctly.
> > > + */
> > > + migration_object_init();
> > > +
> >
> > Do we really need this? Can't be we just do:
> >
> > if (!current_migration) {
> > current_migration = MIGRATION_OBJ(object_new(TYPE_MIGRATION));
> > }
> >
> > inside migration_get_current()?
>
> I did this change on purpose (after AccelClass.global_props is
> introduced). The comment above tried to explain it but looks like it's
> still not clear enough... The reason is that currently the creation of
> migration object is depending on the global properties, so we need to
> create the object after register_global_properties(), while the old
> migrate_get_current() cannot really be sure of this ordering: it just
> creates the object on the first call of the function, but the first
> call can be even before register_global_properties(). If so, we'll
> have a problem (e.g. Xen compat properties will be missing).
>
> Now this restriction is strictly followed if we create the migrate
> object here. If anyone calls migrate_get_current() before
> register_global_properties(), there will be an assert, and that should
> be treated as a programming error.
Makes sense to me. Thanks!
--
Eduardo
next prev parent reply other threads:[~2017-06-27 0:54 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-23 4:46 [Qemu-devel] [PATCH v5 00/10] migration: objectify MigrationState Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 01/10] machine: export register_compat_prop() Peter Xu
2017-06-23 21:24 ` Eduardo Habkost
2017-06-26 2:36 ` Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 02/10] accel: introduce AccelClass.global_props Peter Xu
2017-06-23 21:31 ` Eduardo Habkost
2017-06-26 2:39 ` Peter Xu
2017-06-27 0:50 ` Eduardo Habkost
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 03/10] vl: clean up global property registerations Peter Xu
2017-06-23 21:35 ` Eduardo Habkost
2017-06-26 2:40 ` Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 04/10] migration: let MigrationState be a qdev Peter Xu
2017-06-23 22:18 ` Eduardo Habkost
2017-06-26 2:50 ` Peter Xu
2017-06-27 0:54 ` Eduardo Habkost [this message]
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 05/10] migration: move global_state.optional out Peter Xu
2017-06-23 22:19 ` Eduardo Habkost
2017-06-26 2:51 ` Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 06/10] migration: move only_migratable to MigrationState Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 07/10] migration: move skip_configuration out Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 08/10] migration: move skip_section_footers Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 09/10] migration: merge enforce_config_section somewhat Peter Xu
2017-06-23 4:46 ` [Qemu-devel] [PATCH v5 10/10] migration: hmp: dump globals Peter Xu
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=20170627005437.GK12152@localhost.localdomain \
--to=ehabkost@redhat.com \
--cc=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=lvivier@redhat.com \
--cc=peterx@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.