migration: Deprecate old compression method
Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Peter Xu <peterx@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20231018115513.2163-6-quintela@redhat.com>
This commit is contained in:
		| @@ -496,3 +496,11 @@ devices or none. | ||||
| Please see "QMP invocation for live storage migration with | ||||
| ``blockdev-mirror`` + NBD" in docs/interop/live-block-operations.rst | ||||
| for a detailed explanation. | ||||
|  | ||||
| old compression method (since 8.2) | ||||
| '''''''''''''''''''''''''''''''''' | ||||
|  | ||||
| Compression method fails too much.  Too many races.  We are going to | ||||
| remove it if nobody fixes it.  For starters, migration-test | ||||
| compression tests are disabled becase they fail randomly.  If you need | ||||
| compression, use multifd compression methods. | ||||
|   | ||||
| @@ -483,6 +483,11 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp) | ||||
|                     " use blockdev-mirror with NBD instead"); | ||||
|     } | ||||
|  | ||||
|     if (new_caps[MIGRATION_CAPABILITY_COMPRESS]) { | ||||
|         warn_report("old compression method is deprecated;" | ||||
|                     " use multifd compression methods instead"); | ||||
|     } | ||||
|  | ||||
| #ifndef CONFIG_REPLICATION | ||||
|     if (new_caps[MIGRATION_CAPABILITY_X_COLO]) { | ||||
|         error_setg(errp, "QEMU compiled without replication module" | ||||
| @@ -1335,18 +1340,26 @@ static void migrate_params_apply(MigrateSetParameters *params, Error **errp) | ||||
|     /* TODO use QAPI_CLONE() instead of duplicating it inline */ | ||||
|  | ||||
|     if (params->has_compress_level) { | ||||
|         warn_report("old compression is deprecated;" | ||||
|                     " use multifd compression methods instead"); | ||||
|         s->parameters.compress_level = params->compress_level; | ||||
|     } | ||||
|  | ||||
|     if (params->has_compress_threads) { | ||||
|         warn_report("old compression is deprecated;" | ||||
|                     " use multifd compression methods instead"); | ||||
|         s->parameters.compress_threads = params->compress_threads; | ||||
|     } | ||||
|  | ||||
|     if (params->has_compress_wait_thread) { | ||||
|         warn_report("old compression is deprecated;" | ||||
|                     " use multifd compression methods instead"); | ||||
|         s->parameters.compress_wait_thread = params->compress_wait_thread; | ||||
|     } | ||||
|  | ||||
|     if (params->has_decompress_threads) { | ||||
|         warn_report("old compression is deprecated;" | ||||
|                     " use multifd compression methods instead"); | ||||
|         s->parameters.decompress_threads = params->decompress_threads; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -272,6 +272,10 @@ | ||||
| # Features: | ||||
| # | ||||
| # @deprecated: Member @disk is deprecated because block migration is. | ||||
| #     Member @compression is deprecated because it is unreliable and | ||||
| #     untested.  It is recommended to use multifd migration, which | ||||
| #     offers an alternative compression implementation that is | ||||
| #     reliable and tested. | ||||
| # | ||||
| # Since: 0.14 | ||||
| ## | ||||
| @@ -289,7 +293,7 @@ | ||||
|            '*blocked-reasons': ['str'], | ||||
|            '*postcopy-blocktime': 'uint32', | ||||
|            '*postcopy-vcpu-blocktime': ['uint32'], | ||||
|            '*compression': 'CompressionStats', | ||||
|            '*compression': { 'type': 'CompressionStats', 'features': [ 'deprecated' ] }, | ||||
|            '*socket-address': ['SocketAddress'], | ||||
|            '*dirty-limit-throttle-time-per-round': 'uint64', | ||||
|            '*dirty-limit-ring-full-time': 'uint64'} } | ||||
| @@ -530,7 +534,10 @@ | ||||
| # Features: | ||||
| # | ||||
| # @deprecated: Member @block is deprecated.  Use blockdev-mirror with | ||||
| #     NBD instead. | ||||
| #     NBD instead.  Member @compression is deprecated because it is | ||||
| #     unreliable and untested.  It is recommended to use multifd | ||||
| #     migration, which offers an alternative compression | ||||
| #     implementation that is reliable and tested. | ||||
| # | ||||
| # @unstable: Members @x-colo and @x-ignore-shared are experimental. | ||||
| # | ||||
| @@ -538,7 +545,8 @@ | ||||
| ## | ||||
| { 'enum': 'MigrationCapability', | ||||
|   'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks', | ||||
|            'compress', 'events', 'postcopy-ram', | ||||
|            { 'name': 'compress', 'features': [ 'deprecated' ] }, | ||||
|            'events', 'postcopy-ram', | ||||
|            { 'name': 'x-colo', 'features': [ 'unstable' ] }, | ||||
|            'release-ram', | ||||
|            { 'name': 'block', 'features': [ 'deprecated' ] }, | ||||
| @@ -844,7 +852,9 @@ | ||||
| # Features: | ||||
| # | ||||
| # @deprecated: Member @block-incremental is deprecated.  Use | ||||
| #     blockdev-mirror with NBD instead. | ||||
| #     blockdev-mirror with NBD instead.  Members @compress-level, | ||||
| #     @compress-threads, @decompress-threads and @compress-wait-thread | ||||
| #     are deprecated because @compression is deprecated. | ||||
| # | ||||
| # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period | ||||
| #     are experimental. | ||||
| @@ -854,8 +864,11 @@ | ||||
| { 'enum': 'MigrationParameter', | ||||
|   'data': ['announce-initial', 'announce-max', | ||||
|            'announce-rounds', 'announce-step', | ||||
|            'compress-level', 'compress-threads', 'decompress-threads', | ||||
|            'compress-wait-thread', 'throttle-trigger-threshold', | ||||
|            { 'name': 'compress-level', 'features': [ 'deprecated' ] }, | ||||
|            { 'name': 'compress-threads', 'features': [ 'deprecated' ] }, | ||||
|            { 'name': 'decompress-threads', 'features': [ 'deprecated' ] }, | ||||
|            { 'name': 'compress-wait-thread', 'features': [ 'deprecated' ] }, | ||||
|            'throttle-trigger-threshold', | ||||
|            'cpu-throttle-initial', 'cpu-throttle-increment', | ||||
|            'cpu-throttle-tailslow', | ||||
|            'tls-creds', 'tls-hostname', 'tls-authz', 'max-bandwidth', | ||||
| @@ -1023,7 +1036,9 @@ | ||||
| # Features: | ||||
| # | ||||
| # @deprecated: Member @block-incremental is deprecated.  Use | ||||
| #     blockdev-mirror with NBD instead. | ||||
| #     blockdev-mirror with NBD instead.  Members @compress-level, | ||||
| #     @compress-threads, @decompress-threads and @compress-wait-thread | ||||
| #     are deprecated because @compression is deprecated. | ||||
| # | ||||
| # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period | ||||
| #     are experimental. | ||||
| @@ -1038,10 +1053,14 @@ | ||||
|             '*announce-max': 'size', | ||||
|             '*announce-rounds': 'size', | ||||
|             '*announce-step': 'size', | ||||
|             '*compress-level': 'uint8', | ||||
|             '*compress-threads': 'uint8', | ||||
|             '*compress-wait-thread': 'bool', | ||||
|             '*decompress-threads': 'uint8', | ||||
|             '*compress-level': { 'type': 'uint8', | ||||
|                                  'features': [ 'deprecated' ] }, | ||||
|             '*compress-threads':  { 'type': 'uint8', | ||||
|                                     'features': [ 'deprecated' ] }, | ||||
|             '*compress-wait-thread':  { 'type': 'bool', | ||||
|                                         'features': [ 'deprecated' ] }, | ||||
|             '*decompress-threads':  { 'type': 'uint8', | ||||
|                                       'features': [ 'deprecated' ] }, | ||||
|             '*throttle-trigger-threshold': 'uint8', | ||||
|             '*cpu-throttle-initial': 'uint8', | ||||
|             '*cpu-throttle-increment': 'uint8', | ||||
| @@ -1078,7 +1097,7 @@ | ||||
| # Example: | ||||
| # | ||||
| # -> { "execute": "migrate-set-parameters" , | ||||
| #      "arguments": { "compress-level": 1 } } | ||||
| #      "arguments": { "multifd-channels": 5 } } | ||||
| # <- { "return": {} } | ||||
| ## | ||||
| { 'command': 'migrate-set-parameters', 'boxed': true, | ||||
| @@ -1241,7 +1260,9 @@ | ||||
| # Features: | ||||
| # | ||||
| # @deprecated: Member @block-incremental is deprecated.  Use | ||||
| #     blockdev-mirror with NBD instead. | ||||
| #     blockdev-mirror with NBD instead.  Members @compress-level, | ||||
| #     @compress-threads, @decompress-threads and @compress-wait-thread | ||||
| #     are deprecated because @compression is deprecated. | ||||
| # | ||||
| # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period | ||||
| #     are experimental. | ||||
| @@ -1253,10 +1274,14 @@ | ||||
|             '*announce-max': 'size', | ||||
|             '*announce-rounds': 'size', | ||||
|             '*announce-step': 'size', | ||||
|             '*compress-level': 'uint8', | ||||
|             '*compress-threads': 'uint8', | ||||
|             '*compress-wait-thread': 'bool', | ||||
|             '*decompress-threads': 'uint8', | ||||
|             '*compress-level': { 'type': 'uint8', | ||||
|                                  'features': [ 'deprecated' ] }, | ||||
|             '*compress-threads': { 'type': 'uint8', | ||||
|                                    'features': [ 'deprecated' ] }, | ||||
|             '*compress-wait-thread': { 'type': 'bool', | ||||
|                                        'features': [ 'deprecated' ] }, | ||||
|             '*decompress-threads': { 'type': 'uint8', | ||||
|                                      'features': [ 'deprecated' ] }, | ||||
|             '*throttle-trigger-threshold': 'uint8', | ||||
|             '*cpu-throttle-initial': 'uint8', | ||||
|             '*cpu-throttle-increment': 'uint8', | ||||
| @@ -1296,10 +1321,8 @@ | ||||
| # | ||||
| # -> { "execute": "query-migrate-parameters" } | ||||
| # <- { "return": { | ||||
| #          "decompress-threads": 2, | ||||
| #          "multifd-channels": 2, | ||||
| #          "cpu-throttle-increment": 10, | ||||
| #          "compress-threads": 8, | ||||
| #          "compress-level": 1, | ||||
| #          "cpu-throttle-initial": 20, | ||||
| #          "max-bandwidth": 33554432, | ||||
| #          "downtime-limit": 300 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user