Jules Wang <junqing.w...@cs2c.com.cn> wrote: > Parse the word 'curling' when incoming/outgoing migration is > starting. So we know whether to enable fault tolerant or not. > > Signed-off-by: Jules Wang <junqing.w...@cs2c.com.cn> > --- > include/migration/migration.h | 2 ++ > migration.c | 16 ++++++++++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/include/migration/migration.h b/include/migration/migration.h > index 140e6b4..4cbb62f 100644 > --- a/include/migration/migration.h > +++ b/include/migration/migration.h > @@ -162,4 +162,6 @@ size_t ram_control_save_page(QEMUFile *f, ram_addr_t > block_offset, > ram_addr_t offset, size_t size, > int *bytes_sent); > > +bool ft_enabled(void); > + > #endif > diff --git a/migration.c b/migration.c > index 200d404..59c8f32 100644 > --- a/migration.c > +++ b/migration.c > @@ -58,6 +58,12 @@ enum { > static NotifierList migration_state_notifiers = > NOTIFIER_LIST_INITIALIZER(migration_state_notifiers); > > +static bool ft_mode; > +bool ft_enabled(void) > +{ > + return ft_mode;
Shouldn't this be in migration_state? Just wondering. And yes, I don't see either a trivial place how to get it. get_current_migration()? > +} > + > /* When we add fault tolerance, we could have several > migrations at once. For now we don't need to add > dynamic creation of migration */ > @@ -78,6 +84,11 @@ void qemu_start_incoming_migration(const char *uri, Error > **errp) > { > const char *p; > > + if (strstart(uri, "curling:", &p)) { > + ft_mode = true; > + uri = p; > + } > + Syntax is at least weird: curling:tcp:foo:9999 curling+tcp:foo:9999 could be better? Suggestions folks? notice that we still need more things: tcp+tls should happen at some time soon. This is not related with this patch. > if (strstart(uri, "tcp:", &p)) > tcp_start_incoming_migration(p, errp); > #ifdef CONFIG_RDMA > @@ -420,6 +431,11 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, > > s = migrate_init(¶ms); > > + if (strstart(uri, "curling:", &p)) { > + ft_mode = true; > + uri = p; > + } > + > if (strstart(uri, "tcp:", &p)) { > tcp_start_outgoing_migration(s, p, &local_err); > #ifdef CONFIG_RDMA