Message ID | 1617263249-54501-5-git-send-email-lei.rao@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fixed some bugs and optimized some codes for COLO | expand |
> -----Original Message----- > From: Rao, Lei <lei.rao@intel.com> > Sent: Thursday, April 1, 2021 3:47 PM > To: Zhang, Chen <chen.zhang@intel.com>; lizhijian@cn.fujitsu.com; > jasowang@redhat.com; quintela@redhat.com; dgilbert@redhat.com; > pbonzini@redhat.com; lukasstraub2@web.de > Cc: qemu-devel@nongnu.org; Rao, Lei <lei.rao@intel.com> > Subject: [PATCH v5 04/10] Remove migrate_set_block_enabled in > checkpoint > > From: "Rao, Lei" <lei.rao@intel.com> > > We can detect disk migration in migrate_prepare, if disk migration is enabled > in COLO mode, we can directly report an error.and there is no need to > disable block migration at every checkpoint. > > Signed-off-by: Lei Rao <lei.rao@intel.com> > Signed-off-by: Zhang Chen <chen.zhang@intel.com> > Reviewed-by: Li Zhijian <lizhijian@fujitsu.com> Reviewed-by: Zhang Chen <chen.zhang@intel.com> > --- > migration/colo.c | 6 ------ > migration/migration.c | 4 ++++ > 2 files changed, 4 insertions(+), 6 deletions(-) > > diff --git a/migration/colo.c b/migration/colo.c index de27662..1aaf316 > 100644 > --- a/migration/colo.c > +++ b/migration/colo.c > @@ -435,12 +435,6 @@ static int > colo_do_checkpoint_transaction(MigrationState *s, > if (failover_get_state() != FAILOVER_STATUS_NONE) { > goto out; > } > - > - /* Disable block migration */ > - migrate_set_block_enabled(false, &local_err); > - if (local_err) { > - goto out; > - } > qemu_mutex_lock_iothread(); > > #ifdef CONFIG_REPLICATION > diff --git a/migration/migration.c b/migration/migration.c index > ca8b97b..4578f22 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -2219,6 +2219,10 @@ static bool migrate_prepare(MigrationState *s, > bool blk, bool blk_inc, > } > > if (blk || blk_inc) { > + if (migrate_colo_enabled()) { > + error_setg(errp, "No disk migration is required in COLO mode"); > + return false; > + } > if (migrate_use_block() || migrate_use_block_incremental()) { > error_setg(errp, "Command options are incompatible with " > "current migration capabilities"); > -- > 1.8.3.1
diff --git a/migration/colo.c b/migration/colo.c index de27662..1aaf316 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -435,12 +435,6 @@ static int colo_do_checkpoint_transaction(MigrationState *s, if (failover_get_state() != FAILOVER_STATUS_NONE) { goto out; } - - /* Disable block migration */ - migrate_set_block_enabled(false, &local_err); - if (local_err) { - goto out; - } qemu_mutex_lock_iothread(); #ifdef CONFIG_REPLICATION diff --git a/migration/migration.c b/migration/migration.c index ca8b97b..4578f22 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2219,6 +2219,10 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc, } if (blk || blk_inc) { + if (migrate_colo_enabled()) { + error_setg(errp, "No disk migration is required in COLO mode"); + return false; + } if (migrate_use_block() || migrate_use_block_incremental()) { error_setg(errp, "Command options are incompatible with " "current migration capabilities");