From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: dgilbert@redhat.com, lvivier@redhat.com, peterx@redhat.com
Subject: [Qemu-devel] [PATCH 1/2] migration: Remove use of old MigrationParams
Date: Fri, 12 May 2017 17:54:48 +0200 [thread overview]
Message-ID: <20170512155449.9003-2-quintela@redhat.com> (raw)
In-Reply-To: <20170512155449.9003-1-quintela@redhat.com>
We have change in the previous patch to use migration capabilities for
it. Notice that we continue using the old command line flags from
migrate command from the time being. Remove the set_params method as
now it is empty.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
--
- Maintain shared/enabled dependency (Xu suggestien)
---
include/migration/migration.h | 3 +--
migration/block.c | 17 ++---------------
migration/colo.c | 5 +++--
migration/migration.c | 14 +++++++++++---
migration/savevm.c | 2 --
5 files changed, 17 insertions(+), 24 deletions(-)
diff --git a/include/migration/migration.h b/include/migration/migration.h
index 258e4ff..d228f29 100644
--- a/include/migration/migration.h
+++ b/include/migration/migration.h
@@ -43,8 +43,7 @@
extern int only_migratable;
struct MigrationParams {
- bool blk;
- bool shared;
+ bool unused; /* C doesn't allow empty structs */
};
/* Messages sent on the return path from destination to source */
diff --git a/migration/block.c b/migration/block.c
index 060087f..fcfa823 100644
--- a/migration/block.c
+++ b/migration/block.c
@@ -94,9 +94,6 @@ typedef struct BlkMigBlock {
} BlkMigBlock;
typedef struct BlkMigState {
- /* Written during setup phase. Can be read without a lock. */
- int blk_enable;
- int shared_base;
QSIMPLEQ_HEAD(bmds_list, BlkMigDevState) bmds_list;
int64_t total_sector_sum;
bool zero_blocks;
@@ -425,7 +422,7 @@ static int init_blk_migration(QEMUFile *f)
bmds->bulk_completed = 0;
bmds->total_sectors = sectors;
bmds->completed_sectors = 0;
- bmds->shared_base = block_mig_state.shared_base;
+ bmds->shared_base = migrate_use_block_shared();
assert(i < num_bs);
bmds_bs[i].bmds = bmds;
@@ -994,22 +991,12 @@ static int block_load(QEMUFile *f, void *opaque, int version_id)
return 0;
}
-static void block_set_params(const MigrationParams *params, void *opaque)
-{
- block_mig_state.blk_enable = params->blk;
- block_mig_state.shared_base = params->shared;
-
- /* shared base means that blk_enable = 1 */
- block_mig_state.blk_enable |= params->shared;
-}
-
static bool block_is_active(void *opaque)
{
- return block_mig_state.blk_enable == 1;
+ return migrate_use_block_enabled();
}
static SaveVMHandlers savevm_block_handlers = {
- .set_params = block_set_params,
.save_live_setup = block_save_setup,
.save_live_iterate = block_save_iterate,
.save_live_complete_precopy = block_save_complete,
diff --git a/migration/colo.c b/migration/colo.c
index 963c802..e772384 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -14,6 +14,7 @@
#include "qemu/timer.h"
#include "sysemu/sysemu.h"
#include "migration/colo.h"
+#include "migration/block.h"
#include "io/channel-buffer.h"
#include "trace.h"
#include "qemu/error-report.h"
@@ -345,8 +346,8 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
}
/* Disable block migration */
- s->params.blk = 0;
- s->params.shared = 0;
+ migrate_set_block_enabled(s, false);
+ migrate_set_block_shared(s, false);
qemu_savevm_state_header(fb);
qemu_savevm_state_begin(fb, &s->params);
qemu_mutex_lock_iothread();
diff --git a/migration/migration.c b/migration/migration.c
index 78102eb..0c32609 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -788,6 +788,10 @@ void qmp_migrate_set_capabilities(MigrationCapabilityStatusList *params,
s->enabled_capabilities[cap->value->capability] = cap->value->state;
}
+ if (s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_SHARED]) {
+ s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_ENABLED] = true;
+ }
+
if (migrate_postcopy_ram()) {
if (migrate_use_compression()) {
/* The decompression threads asynchronously write into RAM
@@ -1214,11 +1218,17 @@ bool migration_is_blocked(Error **errp)
void migrate_set_block_shared(MigrationState *s, bool value)
{
s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_SHARED] = value;
+ if (value) {
+ s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_ENABLED] = true;
+ }
}
void migrate_set_block_enabled(MigrationState *s, bool value)
{
s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_ENABLED] = value;
+ if (!value) {
+ s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_SHARED] = false;
+ }
}
void qmp_migrate(const char *uri, bool has_blk, bool blk,
@@ -1230,9 +1240,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) {
@@ -1255,6 +1262,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);
}
diff --git a/migration/savevm.c b/migration/savevm.c
index b2fd06f..8aaefe9 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1233,8 +1233,6 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp)
{
int ret;
MigrationParams params = {
- .blk = 0,
- .shared = 0
};
MigrationState *ms = migrate_init(¶ms);
MigrationStatus status;
--
2.9.3
next prev parent reply other threads:[~2017-05-12 15:55 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-12 15:54 [Qemu-devel] [PATCH v3 0/2] Remove old MigrationParams Juan Quintela
2017-05-12 15:54 ` Juan Quintela [this message]
2017-05-15 10:18 ` [Qemu-devel] [PATCH 1/2] migration: Remove use of " Peter Xu
2017-05-12 15:54 ` [Qemu-devel] [PATCH 2/2] migration: Remove " Juan Quintela
2017-05-15 10:19 ` 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=20170512155449.9003-2-quintela@redhat.com \
--to=quintela@redhat.com \
--cc=dgilbert@redhat.com \
--cc=lvivier@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).