From nobody Sun Apr 28 20:02:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1494520460126866.7015218373598; Thu, 11 May 2017 09:34:20 -0700 (PDT) Received: from localhost ([::1]:49296 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8r2f-0006tl-Q2 for importer@patchew.org; Thu, 11 May 2017 12:34:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55220) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8r14-00062a-56 for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d8r12-0006dp-OP for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:14712) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d8r12-0006dQ-En for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:36 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 59DFDC05973F for ; Thu, 11 May 2017 16:32:35 +0000 (UTC) Received: from secure.mitica (ovpn-117-44.ams2.redhat.com [10.36.117.44]) by smtp.corp.redhat.com (Postfix) with ESMTP id D068317A9D; Thu, 11 May 2017 16:32:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 59DFDC05973F Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=quintela@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 59DFDC05973F From: Juan Quintela To: qemu-devel@nongnu.org Date: Thu, 11 May 2017 18:32:26 +0200 Message-Id: <20170511163228.6666-2-quintela@redhat.com> In-Reply-To: <20170511163228.6666-1-quintela@redhat.com> References: <20170511163228.6666-1-quintela@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Thu, 11 May 2017 16:32:35 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 1/3] migration: Create block capabilities for shared and enable X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lvivier@redhat.com, dgilbert@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Those two capabilities were added through the command line. Notice that we just created them. This is just the boilerplate. Signed-off-by: Juan Quintela Reviewed-by: Eric Blake -- Make migrate_set_block_* take a boolean argument. Signed-off-by: Juan Quintela Reviewed-by:zhanghailiang --- include/migration/block.h | 3 +++ include/migration/migration.h | 3 +++ migration/migration.c | 36 ++++++++++++++++++++++++++++++++++++ qapi-schema.json | 7 ++++++- 4 files changed, 48 insertions(+), 1 deletion(-) diff --git a/include/migration/block.h b/include/migration/block.h index 41a1ac8..5b3f1a5 100644 --- a/include/migration/block.h +++ b/include/migration/block.h @@ -20,4 +20,7 @@ uint64_t blk_mig_bytes_transferred(void); uint64_t blk_mig_bytes_remaining(void); uint64_t blk_mig_bytes_total(void); =20 +void migrate_set_block_shared(MigrationState *s, bool value); +void migrate_set_block_enabled(MigrationState *s, bool value); + #endif /* MIGRATION_BLOCK_H */ diff --git a/include/migration/migration.h b/include/migration/migration.h index 0c9b6af..30c2913 100644 --- a/include/migration/migration.h +++ b/include/migration/migration.h @@ -305,6 +305,9 @@ bool migrate_colo_enabled(void); =20 int64_t xbzrle_cache_resize(int64_t new_size); =20 +bool migrate_use_block_enabled(void); +bool migrate_use_block_shared(void); + bool migrate_use_compression(void); int migrate_compress_level(void); int migrate_compress_threads(void); diff --git a/migration/migration.c b/migration/migration.c index fe62f15..2f981aa 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1195,6 +1195,16 @@ bool migration_is_blocked(Error **errp) return false; } =20 +void migrate_set_block_shared(MigrationState *s, bool value) +{ + s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_SHARED] =3D value; +} + +void migrate_set_block_enabled(MigrationState *s, bool value) +{ + s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_ENABLED] =3D value; +} + void qmp_migrate(const char *uri, bool has_blk, bool blk, bool has_inc, bool inc, bool has_detach, bool detach, Error **errp) @@ -1224,6 +1234,14 @@ void qmp_migrate(const char *uri, bool has_blk, bool= blk, =20 s =3D migrate_init(¶ms); =20 + if (has_blk && blk) { + migrate_set_block_enabled(s, true); + } + + if (has_inc && inc) { + migrate_set_block_shared(s, true); + } + if (strstart(uri, "tcp:", &p)) { tcp_start_outgoing_migration(s, p, &local_err); #ifdef CONFIG_RDMA @@ -1419,6 +1437,24 @@ int64_t migrate_xbzrle_cache_size(void) return s->xbzrle_cache_size; } =20 +bool migrate_use_block_enabled(void) +{ + MigrationState *s; + + s =3D migrate_get_current(); + + return s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_ENABLED]; +} + +bool migrate_use_block_shared(void) +{ + MigrationState *s; + + s =3D migrate_get_current(); + + return s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_SHARED]; +} + /* migration thread support */ /* * Something bad happened to the RP stream, mark an error diff --git a/qapi-schema.json b/qapi-schema.json index 5728b7f..109852e 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -894,11 +894,16 @@ # @release-ram: if enabled, qemu will free the migrated ram pages on the s= ource # during postcopy-ram migration. (since 2.9) # +# @block-enabled: enable block migration (Since 2.10) +# +# @block-shared: enable block shared migration (Since 2.10) +# # Since: 1.2 ## { 'enum': 'MigrationCapability', 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks', - 'compress', 'events', 'postcopy-ram', 'x-colo', 'release-ram'] } + 'compress', 'events', 'postcopy-ram', 'x-colo', 'release-ram', + 'block-enabled', 'block-shared' ] } =20 ## # @MigrationCapabilityStatus: --=20 2.9.3 From nobody Sun Apr 28 20:02:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1494520584134771.8944163519124; Thu, 11 May 2017 09:36:24 -0700 (PDT) Received: from localhost ([::1]:49310 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8r4f-000069-1n for importer@patchew.org; Thu, 11 May 2017 12:36:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55248) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8r15-00062j-KT for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d8r14-0006f8-JX for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43088) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d8r14-0006eR-BG for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:38 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 57AD3C04B941 for ; Thu, 11 May 2017 16:32:37 +0000 (UTC) Received: from secure.mitica (ovpn-117-44.ams2.redhat.com [10.36.117.44]) by smtp.corp.redhat.com (Postfix) with ESMTP id ADC0617A9D; Thu, 11 May 2017 16:32:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 57AD3C04B941 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=quintela@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 57AD3C04B941 From: Juan Quintela To: qemu-devel@nongnu.org Date: Thu, 11 May 2017 18:32:27 +0200 Message-Id: <20170511163228.6666-3-quintela@redhat.com> In-Reply-To: <20170511163228.6666-1-quintela@redhat.com> References: <20170511163228.6666-1-quintela@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 11 May 2017 16:32:37 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 2/3] migration: Remove use of old MigrationParams X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lvivier@redhat.com, dgilbert@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 Reviewed-by:zhanghailiang --- include/migration/migration.h | 3 +-- migration/block.c | 17 ++--------------- migration/colo.c | 5 +++-- migration/migration.c | 8 +++++--- migration/savevm.c | 2 -- 5 files changed, 11 insertions(+), 24 deletions(-) diff --git a/include/migration/migration.h b/include/migration/migration.h index 30c2913..2d5525c 100644 --- a/include/migration/migration.h +++ b/include/migration/migration.h @@ -39,8 +39,7 @@ #define QEMU_VM_SECTION_FOOTER 0x7e =20 struct MigrationParams { - bool blk; - bool shared; + bool unused; /* C doesn't allow empty structs */ }; =20 /* 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; =20 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 =3D 0; bmds->total_sectors =3D sectors; bmds->completed_sectors =3D 0; - bmds->shared_base =3D block_mig_state.shared_base; + bmds->shared_base =3D migrate_use_block_shared(); =20 assert(i < num_bs); bmds_bs[i].bmds =3D bmds; @@ -994,22 +991,12 @@ static int block_load(QEMUFile *f, void *opaque, int = version_id) return 0; } =20 -static void block_set_params(const MigrationParams *params, void *opaque) -{ - block_mig_state.blk_enable =3D params->blk; - block_mig_state.shared_base =3D params->shared; - - /* shared base means that blk_enable =3D 1 */ - block_mig_state.blk_enable |=3D params->shared; -} - static bool block_is_active(void *opaque) { - return block_mig_state.blk_enable =3D=3D 1; + return migrate_use_block_enabled(); } =20 static SaveVMHandlers savevm_block_handlers =3D { - .set_params =3D block_set_params, .save_live_setup =3D block_save_setup, .save_live_iterate =3D block_save_iterate, .save_live_complete_precopy =3D 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(MigrationStat= e *s, } =20 /* Disable block migration */ - s->params.blk =3D 0; - s->params.shared =3D 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 2f981aa..8a3bf89 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -787,6 +787,10 @@ void qmp_migrate_set_capabilities(MigrationCapabilityS= tatusList *params, s->enabled_capabilities[cap->value->capability] =3D cap->value->st= ate; } =20 + if (s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_SHARED]) { + s->enabled_capabilities[MIGRATION_CAPABILITY_BLOCK_ENABLED] =3D tr= ue; + } + if (migrate_postcopy_ram()) { if (migrate_use_compression()) { /* The decompression threads asynchronously write into RAM @@ -1214,9 +1218,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool = blk, MigrationParams params; const char *p; =20 - params.blk =3D has_blk && blk; - params.shared =3D has_inc && inc; - if (migration_is_setup_or_active(s->state) || s->state =3D=3D MIGRATION_STATUS_CANCELLING || s->state =3D=3D MIGRATION_STATUS_COLO) { @@ -1239,6 +1240,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool = blk, } =20 if (has_inc && inc) { + migrate_set_block_enabled(s, true); migrate_set_block_shared(s, true); } =20 diff --git a/migration/savevm.c b/migration/savevm.c index f8d1e8b..221fb4b 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1233,8 +1233,6 @@ static int qemu_savevm_state(QEMUFile *f, Error **err= p) { int ret; MigrationParams params =3D { - .blk =3D 0, - .shared =3D 0 }; MigrationState *ms =3D migrate_init(¶ms); MigrationStatus status; --=20 2.9.3 From nobody Sun Apr 28 20:02:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1494520468417995.430505921577; Thu, 11 May 2017 09:34:28 -0700 (PDT) Received: from localhost ([::1]:49297 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8r2n-0006yu-Rh for importer@patchew.org; Thu, 11 May 2017 12:34:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55260) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8r17-00063w-S2 for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d8r16-0006gN-Id for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42380) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d8r16-0006fm-9u for qemu-devel@nongnu.org; Thu, 11 May 2017 12:32:40 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4AACA76F5 for ; Thu, 11 May 2017 16:32:39 +0000 (UTC) Received: from secure.mitica (ovpn-117-44.ams2.redhat.com [10.36.117.44]) by smtp.corp.redhat.com (Postfix) with ESMTP id ADF7417A9D; Thu, 11 May 2017 16:32:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4AACA76F5 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=quintela@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 4AACA76F5 From: Juan Quintela To: qemu-devel@nongnu.org Date: Thu, 11 May 2017 18:32:28 +0200 Message-Id: <20170511163228.6666-4-quintela@redhat.com> In-Reply-To: <20170511163228.6666-1-quintela@redhat.com> References: <20170511163228.6666-1-quintela@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Thu, 11 May 2017 16:32:39 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 3/3] migration: Remove old MigrationParams X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lvivier@redhat.com, dgilbert@redhat.com, peterx@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Not used anymore after moving block migration to use capabilities. Signed-off-by: Juan Quintela Reviewed-by: Dr. David Alan Gilbert Reviewed-by:zhanghailiang --- include/migration/migration.h | 10 ++-------- include/migration/vmstate.h | 1 - include/qemu/typedefs.h | 1 - include/sysemu/sysemu.h | 3 +-- migration/colo.c | 2 +- migration/migration.c | 8 +++----- migration/savevm.c | 16 +++------------- 7 files changed, 10 insertions(+), 31 deletions(-) diff --git a/include/migration/migration.h b/include/migration/migration.h index 2d5525c..65543f6 100644 --- a/include/migration/migration.h +++ b/include/migration/migration.h @@ -38,10 +38,6 @@ #define QEMU_VM_COMMAND 0x08 #define QEMU_VM_SECTION_FOOTER 0x7e =20 -struct MigrationParams { - bool unused; /* C doesn't allow empty structs */ -}; - /* Messages sent on the return path from destination to source */ enum mig_rp_message_type { MIG_RP_MSG_INVALID =3D 0, /* Must be 0 */ @@ -131,12 +127,10 @@ struct MigrationState QEMUBH *cleanup_bh; QEMUFile *to_dst_file; =20 - /* New style params from 'migrate-set-parameters' */ + /* params from 'migrate-set-parameters' */ MigrationParameters parameters; =20 int state; - /* Old style params from 'migrate' command */ - MigrationParams params; =20 /* State related to return path */ struct { @@ -226,7 +220,7 @@ void migrate_fd_connect(MigrationState *s); =20 void add_migration_state_change_notifier(Notifier *notify); void remove_migration_state_change_notifier(Notifier *notify); -MigrationState *migrate_init(const MigrationParams *params); +MigrationState *migrate_init(void); bool migration_is_blocked(Error **errp); bool migration_in_setup(MigrationState *); bool migration_is_idle(void); diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 1a5bf9c..827fb4c 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -37,7 +37,6 @@ typedef int LoadStateHandler(QEMUFile *f, void *opaque, i= nt version_id); =20 typedef struct SaveVMHandlers { /* This runs inside the iothread lock. */ - void (*set_params)(const MigrationParams *params, void * opaque); SaveStateHandler *save_state; =20 void (*cleanup)(void *opaque); diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h index f08d327..a388243 100644 --- a/include/qemu/typedefs.h +++ b/include/qemu/typedefs.h @@ -49,7 +49,6 @@ typedef struct MemoryRegion MemoryRegion; typedef struct MemoryRegionCache MemoryRegionCache; typedef struct MemoryRegionSection MemoryRegionSection; typedef struct MigrationIncomingState MigrationIncomingState; -typedef struct MigrationParams MigrationParams; typedef struct MigrationState MigrationState; typedef struct Monitor Monitor; typedef struct MonitorDef MonitorDef; diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 16f740f..83ecd13 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -102,8 +102,7 @@ enum qemu_vm_cmd { #define MAX_VM_CMD_PACKAGED_SIZE (1ul << 24) =20 bool qemu_savevm_state_blocked(Error **errp); -void qemu_savevm_state_begin(QEMUFile *f, - const MigrationParams *params); +void qemu_savevm_state_begin(QEMUFile *f); void qemu_savevm_state_header(QEMUFile *f); int qemu_savevm_state_iterate(QEMUFile *f, bool postcopy); void qemu_savevm_state_cleanup(void); diff --git a/migration/colo.c b/migration/colo.c index e772384..430bae5 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -349,7 +349,7 @@ static int colo_do_checkpoint_transaction(MigrationStat= e *s, 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_savevm_state_begin(fb); qemu_mutex_lock_iothread(); qemu_savevm_state_complete_precopy(fb, false); qemu_mutex_unlock_iothread(); diff --git a/migration/migration.c b/migration/migration.c index 8a3bf89..b373d19 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1102,7 +1102,7 @@ bool migration_is_idle(void) return false; } =20 -MigrationState *migrate_init(const MigrationParams *params) +MigrationState *migrate_init(void) { MigrationState *s =3D migrate_get_current(); =20 @@ -1116,7 +1116,6 @@ MigrationState *migrate_init(const MigrationParams *p= arams) s->cleanup_bh =3D 0; s->to_dst_file =3D NULL; s->state =3D MIGRATION_STATUS_NONE; - s->params =3D *params; s->rp_state.from_dst_file =3D NULL; s->rp_state.error =3D false; s->mbps =3D 0.0; @@ -1215,7 +1214,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool = blk, { Error *local_err =3D NULL; MigrationState *s =3D migrate_get_current(); - MigrationParams params; const char *p; =20 if (migration_is_setup_or_active(s->state) || @@ -1233,7 +1231,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool = blk, return; } =20 - s =3D migrate_init(¶ms); + s =3D migrate_init(); =20 if (has_blk && blk) { migrate_set_block_enabled(s, true); @@ -1966,7 +1964,7 @@ static void *migration_thread(void *opaque) qemu_savevm_send_postcopy_advise(s->to_dst_file); } =20 - qemu_savevm_state_begin(s->to_dst_file, &s->params); + qemu_savevm_state_begin(s->to_dst_file); =20 s->setup_time =3D qemu_clock_get_ms(QEMU_CLOCK_HOST) - setup_start; migrate_set_state(&s->state, MIGRATION_STATUS_SETUP, diff --git a/migration/savevm.c b/migration/savevm.c index 221fb4b..26ab3bb 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -966,21 +966,13 @@ void qemu_savevm_state_header(QEMUFile *f) =20 } =20 -void qemu_savevm_state_begin(QEMUFile *f, - const MigrationParams *params) +void qemu_savevm_state_begin(QEMUFile *f) { SaveStateEntry *se; int ret; =20 trace_savevm_state_begin(); QTAILQ_FOREACH(se, &savevm_state.handlers, entry) { - if (!se->ops || !se->ops->set_params) { - continue; - } - se->ops->set_params(params, se->opaque); - } - - QTAILQ_FOREACH(se, &savevm_state.handlers, entry) { if (!se->ops || !se->ops->save_live_setup) { continue; } @@ -1232,9 +1224,7 @@ void qemu_savevm_state_cleanup(void) static int qemu_savevm_state(QEMUFile *f, Error **errp) { int ret; - MigrationParams params =3D { - }; - MigrationState *ms =3D migrate_init(¶ms); + MigrationState *ms =3D migrate_init(); MigrationStatus status; ms->to_dst_file =3D f; =20 @@ -1245,7 +1235,7 @@ static int qemu_savevm_state(QEMUFile *f, Error **err= p) =20 qemu_mutex_unlock_iothread(); qemu_savevm_state_header(f); - qemu_savevm_state_begin(f, ¶ms); + qemu_savevm_state_begin(f); qemu_mutex_lock_iothread(); =20 while (qemu_file_get_error(f) =3D=3D 0) { --=20 2.9.3