All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: dave@treblig.org
Cc: peterx@redhat.com,  farosas@suse.de,  eblake@redhat.com,
	armbru@redhat.com,  qemu-devel@nongnu.org
Subject: Re: [PATCH 2/3] migration: Remove unused zero-blocks capability
Date: Wed, 18 Sep 2024 07:52:56 +0200	[thread overview]
Message-ID: <87msk54ifb.fsf@pond.sub.org> (raw)
In-Reply-To: <20240918000207.182683-3-dave@treblig.org> (dave@treblig.org's message of "Wed, 18 Sep 2024 01:02:06 +0100")

dave@treblig.org writes:

> From: "Dr. David Alan Gilbert" <dave@treblig.org>
>
> migrate_zero_blocks is unused since
>   eef0bae3a7 ("migration: Remove block migration")
>
> Remove it.
> That whole zero-blocks capability was just for old-school
> block migration anyway.
>
> Remove the capability as well.
>
> Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org>
> ---
>  migration/options.c |  8 --------
>  migration/options.h |  1 -
>  qapi/migration.json | 10 +---------
>  3 files changed, 1 insertion(+), 18 deletions(-)
>
> diff --git a/migration/options.c b/migration/options.c
> index 9460c5dee9..997e060612 100644
> --- a/migration/options.c
> +++ b/migration/options.c
> @@ -177,7 +177,6 @@ Property migration_properties[] = {
>      DEFINE_PROP_MIG_CAP("x-xbzrle", MIGRATION_CAPABILITY_XBZRLE),
>      DEFINE_PROP_MIG_CAP("x-rdma-pin-all", MIGRATION_CAPABILITY_RDMA_PIN_ALL),
>      DEFINE_PROP_MIG_CAP("x-auto-converge", MIGRATION_CAPABILITY_AUTO_CONVERGE),
> -    DEFINE_PROP_MIG_CAP("x-zero-blocks", MIGRATION_CAPABILITY_ZERO_BLOCKS),
>      DEFINE_PROP_MIG_CAP("x-events", MIGRATION_CAPABILITY_EVENTS),
>      DEFINE_PROP_MIG_CAP("x-postcopy-ram", MIGRATION_CAPABILITY_POSTCOPY_RAM),
>      DEFINE_PROP_MIG_CAP("x-postcopy-preempt",

Property of (pseudo-)device "migration".  The "x-" prefix suggests we
expect management software not to rely on it.  Okay.

[...]

> diff --git a/qapi/migration.json b/qapi/migration.json
> index b66cccf107..82d0fc962e 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -389,13 +389,6 @@
>  #     footprint is mlock()'d on demand or all at once.  Refer to
>  #     docs/rdma.txt for usage.  Disabled by default.  (since 2.0)
>  #
> -# @zero-blocks: During storage migration encode blocks of zeroes
> -#     efficiently.  This essentially saves 1MB of zeroes per block on
> -#     the wire.  Enabling requires source and target VM to support
> -#     this feature.  To enable it is sufficient to enable the
> -#     capability on the source VM.  The feature is disabled by
> -#     default.  (since 1.6)
> -#
>  # @events: generate events for each migration state change (since 2.4)
>  #
>  # @auto-converge: If enabled, QEMU will automatically throttle down
> @@ -483,7 +476,7 @@
>  # Since: 1.2
>  ##
>  { 'enum': 'MigrationCapability',
> -  'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks',
> +  'data': ['xbzrle', 'rdma-pin-all', 'auto-converge',
>             'events', 'postcopy-ram',
>             { 'name': 'x-colo', 'features': [ 'unstable' ] },
>             'release-ram',

This is used by migrate-set-capabilities and query-migrate-capabilities,
via ['MigrationCapabilityStatus'].

query-migrate-capabilities is unaffected: it couldn't return zero-blocks
anymore even before the patch.

migrate-set-capabilities changes incompatibly, I'm afraid.  Before the
patch:

    {"execute": "migrate-set-capabilities", "arguments": {"capabilities": [{"capability": "zero-blocks", "state": true}]}}
    {"return": {}}

Afterwards:

    {"error": {"class": "GenericError", "desc": "Parameter 'capability' does not accept value 'zero-blocks'"}}

If we had somehow rejected the capability when it made no sense,
removing it now it never makes sense would be obviously fine.

The straight & narrow path is to deprecate now, remove later.

If we believe nothing relies on it, we can bend the rules and remove
right away.  Missing then: update to docs/about/removed-features.rst.

> @@ -542,7 +535,6 @@
>  #           {"state": false, "capability": "xbzrle"},
>  #           {"state": false, "capability": "rdma-pin-all"},
>  #           {"state": false, "capability": "auto-converge"},
> -#           {"state": false, "capability": "zero-blocks"},
>  #           {"state": true, "capability": "events"},
>  #           {"state": false, "capability": "postcopy-ram"},
>  #           {"state": false, "capability": "x-colo"}

Example for query-migrate-capabilities.  Good.



  reply	other threads:[~2024-09-18  5:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-18  0:02 [PATCH 0/3] Migration deadcode removal dave
2024-09-18  0:02 ` [PATCH 1/3] migration: Remove migrate_cap_set dave
2024-09-19 12:12   ` Fabiano Rosas
2024-09-18  0:02 ` [PATCH 2/3] migration: Remove unused zero-blocks capability dave
2024-09-18  5:52   ` Markus Armbruster [this message]
2024-09-18 16:27     ` Peter Xu
2024-09-19 10:39       ` Markus Armbruster
2024-09-19 12:57         ` Fabiano Rosas
2024-09-19 13:00           ` Dr. David Alan Gilbert
2024-09-19 13:43             ` Peter Xu
2024-09-18  0:02 ` [PATCH 3/3] migration: Remove unused socket_send_channel_create_sync dave
2024-09-19 12:12   ` Fabiano Rosas

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=87msk54ifb.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=dave@treblig.org \
    --cc=eblake@redhat.com \
    --cc=farosas@suse.de \
    --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 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.