All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org, "Fam Zheng" <fam@euphon.net>,
	"Eric Blake" <eblake@redhat.com>,
	libvir-list@redhat.com, "Leonardo Bras" <leobras@redhat.com>,
	"Daniel P . Berrangé" <berrange@redhat.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Fabiano Rosas" <farosas@suse.de>, "Peter Xu" <peterx@redhat.com>,
	qemu-block@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"Hanna Czenczek" <hreitz@redhat.com>
Subject: Re: [PATCH v3 3/4] migration: Deprecate block migration
Date: Thu, 12 Oct 2023 12:01:05 +0200	[thread overview]
Message-ID: <87r0m0yxb2.fsf@pond.sub.org> (raw)
In-Reply-To: <20231011204711.9744-4-quintela@redhat.com> (Juan Quintela's message of "Wed, 11 Oct 2023 22:47:10 +0200")

Juan Quintela <quintela@redhat.com> writes:

> It is obsolete.  It is better to use driver-mirror with NBD instead.

drive-mirror

Several more below.

>
> CC: Kevin Wolf <kwolf@redhat.com>
> CC: Eric Blake <eblake@redhat.com>
> CC: Stefan Hajnoczi <stefanha@redhat.com>
> CC: Hanna Czenczek <hreitz@redhat.com>
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
>  docs/about/deprecated.rst | 10 ++++++++++
>  qapi/migration.json       | 30 +++++++++++++++++++++++++-----
>  migration/block.c         |  3 +++
>  migration/options.c       |  9 ++++++++-
>  4 files changed, 46 insertions(+), 6 deletions(-)
>
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index b2b7e11742..e46f3df376 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -431,3 +431,13 @@ The new way to modify migration is using migration parameters.
>  ``blk`` functionality can be achieved by setting the
>  ``block`` migration capability to ``true``.
>  
> +block migration (since 8.2)
> +'''''''''''''''''''''''''''
> +
> +Block migration is too inflexible.  It needs to migrate all block
> +devices or none.
> +
> +Please see "QMP invocation for live storage migration with
> +``driver-mirror`` + NBD" in docs/interop/live-block-operations.rst for
> +a detailed explanation.
> +
> diff --git a/qapi/migration.json b/qapi/migration.json
> index e4949e0d8e..bf6e1ac5b5 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -269,11 +269,16 @@
>  #     average memory load of the virtual CPU indirectly.  Note that
>  #     zero means guest doesn't dirty memory.  (Since 8.1)
>  #
> +# Features:
> +#
> +# @deprecated: @disk migration is deprecated.  Use driver-mirror
> +#     with NBD instead.
> +#

Suggest:

   # @deprecated: Member @disk is deprecated because block migration is.

>  # Since: 0.14
>  ##
>  { 'struct': 'MigrationInfo',
>    'data': {'*status': 'MigrationStatus', '*ram': 'MigrationStats',
> -           '*disk': 'MigrationStats',
> +           '*disk': { 'type': 'MigrationStats', 'features': ['deprecated'] },
>             '*vfio': 'VfioStats',
>             '*xbzrle-cache': 'XBZRLECacheStats',
>             '*total-time': 'int',
> @@ -526,6 +531,9 @@
>  #
>  # Features:
>  #
> +# @deprecated: @block migration is deprecated.  Use driver-mirror
> +#     with NBD instead.
> +#

Suggest:

   # @deprecated: Member @block is deprecated.  Use drrive-mirror with
   # NBD instead.

>  # @unstable: Members @x-colo and @x-ignore-shared are experimental.
>  #
>  # Since: 1.2
> @@ -535,7 +543,8 @@
>             'compress', 'events', 'postcopy-ram',
>             { 'name': 'x-colo', 'features': [ 'unstable' ] },
>             'release-ram',
> -           'block', 'return-path', 'pause-before-switchover', 'multifd',
> +           { 'name': 'block', 'features': [ 'deprecated' ] },
> +           'return-path', 'pause-before-switchover', 'multifd',
>             'dirty-bitmaps', 'postcopy-blocktime', 'late-block-activate',
>             { 'name': 'x-ignore-shared', 'features': [ 'unstable' ] },
>             'validate-uuid', 'background-snapshot',
> @@ -826,6 +835,9 @@
>  #
>  # Features:
>  #
> +# @deprecated: Member @block-incremental is obsolete. Use
> +#     driver-mirror with NBD instead.
> +#

Wait!  This is what PATCH 1 tells users to use instead of deprecated
@inc.  You need to update that deprecation note to point to a
non-deprecated replacement.

>  # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
>  #     are experimental.
>  #
> @@ -841,7 +853,7 @@
>             'tls-creds', 'tls-hostname', 'tls-authz', 'max-bandwidth',
>             'downtime-limit',
>             { 'name': 'x-checkpoint-delay', 'features': [ 'unstable' ] },
> -           'block-incremental',
> +           { 'name': 'block-incremental', 'features': [ 'deprecated' ] },
>             'multifd-channels',
>             'xbzrle-cache-size', 'max-postcopy-bandwidth',
>             'max-cpu-throttle', 'multifd-compression',
> @@ -992,6 +1004,9 @@
>  #
>  # Features:
>  #
> +# @deprecated: Member @block-incremental is obsolete. Use
> +#     driver-mirror with NBD instead.
> +#
>  # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
>  #     are experimental.
>  #
> @@ -1020,7 +1035,8 @@
>              '*downtime-limit': 'uint64',
>              '*x-checkpoint-delay': { 'type': 'uint32',
>                                       'features': [ 'unstable' ] },
> -            '*block-incremental': 'bool',
> +            '*block-incremental': { 'type': 'bool',
> +                                    'features': [ 'deprecated' ] },
>              '*multifd-channels': 'uint8',
>              '*xbzrle-cache-size': 'size',
>              '*max-postcopy-bandwidth': 'size',
> @@ -1195,6 +1211,9 @@
>  #
>  # Features:
>  #
> +# @deprecated: Member @block-incremental is obsolete. Use
> +#     driver-mirror with NBD instead.
> +#
>  # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
>  #     are experimental.
>  #
> @@ -1220,7 +1239,8 @@
>              '*downtime-limit': 'uint64',
>              '*x-checkpoint-delay': { 'type': 'uint32',
>                                       'features': [ 'unstable' ] },
> -            '*block-incremental': 'bool',
> +            '*block-incremental': { 'type': 'bool',
> +                                    'features': [ 'deprecated' ] },
>              '*multifd-channels': 'uint8',
>              '*xbzrle-cache-size': 'size',
>              '*max-postcopy-bandwidth': 'size',
> diff --git a/migration/block.c b/migration/block.c
> index 5f930870a5..46bb431ed3 100644
> --- a/migration/block.c
> +++ b/migration/block.c
> @@ -729,6 +729,9 @@ static int block_save_setup(QEMUFile *f, void *opaque)
>      trace_migration_block_save("setup", block_mig_state.submitted,
>                                 block_mig_state.transferred);
>  
> +    warn_report("block migration is deprecated.  Use driver-mirror with"
> +                "NBD instead.");
> +
>      qemu_mutex_lock_iothread();
>      ret = init_blk_migration(f);
>      if (ret < 0) {
> diff --git a/migration/options.c b/migration/options.c
> index 6bbfd4853d..48cbbd682a 100644
> --- a/migration/options.c
> +++ b/migration/options.c
> @@ -12,6 +12,7 @@
>   */
>  
>  #include "qemu/osdep.h"
> +#include "qemu/error-report.h"
>  #include "exec/target_page.h"
>  #include "qapi/clone-visitor.h"
>  #include "qapi/error.h"
> @@ -464,10 +465,14 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp)
>      if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
>          error_setg(errp, "QEMU compiled without old-style (blk/-b, inc/-i) "
>                     "block migration");
> -        error_append_hint(errp, "Use drive_mirror+NBD instead.\n");
> +        error_append_hint(errp, "Use driver-mirror with NBD instead.\n");
>          return false;
>      }
>  #endif
> +    if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
> +        warn_report("Block migration is deprecated. "
> +                    "Use driver-mirror with NBD instead.");
> +    }
>  
>  #ifndef CONFIG_REPLICATION
>      if (new_caps[MIGRATION_CAPABILITY_X_COLO]) {
> @@ -1351,6 +1356,8 @@ static void migrate_params_apply(MigrateSetParameters *params, Error **errp)
>      }
>  
>      if (params->has_block_incremental) {
> +        warn_report("Block migration is deprecated. "
> +                    "Use driver-mirror with NBD instead.");
>          s->parameters.block_incremental = params->block_incremental;
>      }
>      if (params->has_multifd_channels) {



  reply	other threads:[~2023-10-12 10:02 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-11 20:47 [PATCH v3 0/4] Migration deprecated parts Juan Quintela
2023-10-11 20:47 ` [PATCH v3 1/4] migration: migrate 'inc' command option is deprecated Juan Quintela
2023-10-12  9:52   ` Markus Armbruster
2023-10-12 10:50     ` Juan Quintela
2023-10-11 20:47 ` [PATCH v3 2/4] migration: migrate 'blk' " Juan Quintela
2023-10-11 20:47 ` [PATCH v3 3/4] migration: Deprecate block migration Juan Quintela
2023-10-12 10:01   ` Markus Armbruster [this message]
2023-10-12 11:06     ` Kevin Wolf
2023-10-12 12:04     ` Juan Quintela
2023-10-11 20:47 ` [PATCH v3 4/4] migration: Deprecate old compression method Juan Quintela
2023-10-12 10:06   ` Markus Armbruster
2023-10-12 12:14     ` Juan Quintela
2023-10-11 21:02 ` [PATCH v3 0/4] Migration deprecated parts Stefan Hajnoczi

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=87r0m0yxb2.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=eblake@redhat.com \
    --cc=fam@euphon.net \
    --cc=farosas@suse.de \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=leobras@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.