[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v0 1/7] migration: add background snapshot capab
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH v0 1/7] migration: add background snapshot capability |
Date: |
Thu, 12 Jul 2018 10:03:34 +0100 |
User-agent: |
Mutt/1.10.0 (2018-05-17) |
* Denis Plotnikov (address@hidden) wrote:
> The capability is used for the background vmstate saving
> using the migration infrastructure.
> Background vmstate saving means that the majority of vmstate
> (RAM) is saved in the background when VM's vCPUS are running.
> This helps to reduce the VM downtime on VM snapshotting.
>
> Signed-off-by: Denis Plotnikov <address@hidden>
(As normal the 'since' will need bumping)
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> ---
> migration/migration.c | 35 +++++++++++++++++++++++++++++++++++
> migration/migration.h | 1 +
> qapi/migration.json | 6 +++++-
> 3 files changed, 41 insertions(+), 1 deletion(-)
>
> diff --git a/migration/migration.c b/migration/migration.c
> index d780601f0c..87096d23ef 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -697,6 +697,12 @@ static bool migrate_caps_check(bool *cap_list,
> return false;
> }
>
> + if (cap_list[MIGRATION_CAPABILITY_BACKGROUND_SNAPSHOT]) {
> + error_setg(errp, "Postcopy is not compatible "
> + "with background snapshot");
> + return false;
> + }
> +
> /* This check is reasonably expensive, so only when it's being
> * set the first time, also it's only the destination that needs
> * special support.
> @@ -711,6 +717,26 @@ static bool migrate_caps_check(bool *cap_list,
> }
> }
>
> + if (cap_list[MIGRATION_CAPABILITY_BACKGROUND_SNAPSHOT]) {
> + if (cap_list[MIGRATION_CAPABILITY_RELEASE_RAM]) {
> + error_setg(errp, "Background snapshot is not compatible "
> + "with release ram capability");
> + return false;
> + }
> +
> + if (cap_list[MIGRATION_CAPABILITY_COMPRESS]) {
> + error_setg(errp, "Background snapshot is not "
> + "currently compatible with compression");
> + return false;
> + }
> +
> + if (cap_list[MIGRATION_CAPABILITY_XBZRLE]) {
> + error_setg(errp, "Background snapshot is not "
> + "currently compatible with XBZLRE");
> + return false;
> + }
> + }
> +
> return true;
> }
>
> @@ -1635,6 +1661,15 @@ bool migrate_use_block_incremental(void)
> return s->parameters.block_incremental;
> }
>
> +bool migrate_background_snapshot(void)
> +{
> + MigrationState *s;
> +
> + s = migrate_get_current();
> +
> + return s->enabled_capabilities[MIGRATION_CAPABILITY_BACKGROUND_SNAPSHOT];
> +}
> +
> /* migration thread support */
> /*
> * Something bad happened to the RP stream, mark an error
> diff --git a/migration/migration.h b/migration/migration.h
> index 663415fe48..21babbc008 100644
> --- a/migration/migration.h
> +++ b/migration/migration.h
> @@ -201,6 +201,7 @@ int migrate_compress_level(void);
> int migrate_compress_threads(void);
> int migrate_decompress_threads(void);
> bool migrate_use_events(void);
> +bool migrate_background_snapshot(void);
>
> /* Sending on the return path - generic and then for each message type */
> void migrate_send_rp_shut(MigrationIncomingState *mis,
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 03f57c9616..eb5f52b7ff 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -352,12 +352,16 @@
> #
> # @x-multifd: Use more than one fd for migration (since 2.11)
> #
> +# @background-snapshot: Using migration infrastructure makes VM snapshot
> +# saving its RAM in background. This reduces VM downtime. (since
> 2.12)
> +#
> # Since: 1.2
> ##
> { 'enum': 'MigrationCapability',
> 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks',
> 'compress', 'events', 'postcopy-ram', 'x-colo', 'release-ram',
> - 'block', 'return-path', 'pause-before-switchover', 'x-multifd' ] }
> + 'block', 'return-path', 'pause-before-switchover', 'x-multifd',
> + 'background-snapshot' ] }
>
> ##
> # @MigrationCapabilityStatus:
> --
> 2.17.0
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v0 1/7] migration: add background snapshot capability,
Dr. David Alan Gilbert <=