* [PATCH v5 1/7] migration: Print block status when needed
2023-10-17 11:52 [PATCH v5 0/7] Migration deprecated parts Juan Quintela
@ 2023-10-17 11:52 ` Juan Quintela
2023-10-17 16:27 ` Fabiano Rosas
2023-10-17 11:52 ` [PATCH v5 2/7] migration: migrate 'inc' command option is deprecated Juan Quintela
` (5 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 11:52 UTC (permalink / raw)
To: qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas
The new line was only printed when command options were used. When we
used migration parameters and capabilities, it wasn't.
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
migration/migration-hmp-cmds.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
index d206700a43..a82597f18e 100644
--- a/migration/migration-hmp-cmds.c
+++ b/migration/migration-hmp-cmds.c
@@ -30,6 +30,7 @@
#include "sysemu/runstate.h"
#include "ui/qemu-spice.h"
#include "sysemu/sysemu.h"
+#include "options.h"
#include "migration.h"
static void migration_global_dump(Monitor *mon)
@@ -696,7 +697,6 @@ void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict)
typedef struct HMPMigrationStatus {
QEMUTimer *timer;
Monitor *mon;
- bool is_block_migration;
} HMPMigrationStatus;
static void hmp_migrate_status_cb(void *opaque)
@@ -722,7 +722,7 @@ static void hmp_migrate_status_cb(void *opaque)
timer_mod(status->timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) + 1000);
} else {
- if (status->is_block_migration) {
+ if (migrate_block()) {
monitor_printf(status->mon, "\n");
}
if (info->error_desc) {
@@ -762,7 +762,6 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
status = g_malloc0(sizeof(*status));
status->mon = mon;
- status->is_block_migration = blk || inc;
status->timer = timer_new_ms(QEMU_CLOCK_REALTIME, hmp_migrate_status_cb,
status);
timer_mod(status->timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME));
--
2.41.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v5 1/7] migration: Print block status when needed
2023-10-17 11:52 ` [PATCH v5 1/7] migration: Print block status when needed Juan Quintela
@ 2023-10-17 16:27 ` Fabiano Rosas
0 siblings, 0 replies; 19+ messages in thread
From: Fabiano Rosas @ 2023-10-17 16:27 UTC (permalink / raw)
To: Juan Quintela, qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block
Juan Quintela <quintela@redhat.com> writes:
> The new line was only printed when command options were used. When we
> used migration parameters and capabilities, it wasn't.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v5 2/7] migration: migrate 'inc' command option is deprecated.
2023-10-17 11:52 [PATCH v5 0/7] Migration deprecated parts Juan Quintela
2023-10-17 11:52 ` [PATCH v5 1/7] migration: Print block status when needed Juan Quintela
@ 2023-10-17 11:52 ` Juan Quintela
2023-10-17 13:52 ` Markus Armbruster
2023-10-17 11:52 ` [PATCH v5 3/7] migration: migrate 'blk' " Juan Quintela
` (4 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 11:52 UTC (permalink / raw)
To: qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas, Thomas Huth
Use blockdev-mirror with NBD instead.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
Improve documentation and style (thanks Markus)
---
docs/about/deprecated.rst | 8 ++++++++
qapi/migration.json | 8 +++++++-
migration/migration-hmp-cmds.c | 5 +++++
migration/migration.c | 5 +++++
4 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 2febd2d12f..fc6adf1dea 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -461,3 +461,11 @@ Migration
``skipped`` field in Migration stats has been deprecated. It hasn't
been used for more than 10 years.
+``inc`` migrate command option (since 8.2)
+''''''''''''''''''''''''''''''''''''''''''
+
+Use blockdev-mirror with NBD instead.
+
+As an intermediate step the ``inc`` functionality can be achieved by
+setting the ``block-incremental`` migration parameter to ``true``.
+But this parameter is also deprecated.
diff --git a/qapi/migration.json b/qapi/migration.json
index db3df12d6c..fa7f4f2575 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -1524,6 +1524,11 @@
#
# @resume: resume one paused migration, default "off". (since 3.0)
#
+# Features:
+#
+# @deprecated: Member @inc is deprecated. Use blockdev-mirror with
+# NBD instead.
+#
# Returns: nothing on success
#
# Since: 0.14
@@ -1545,7 +1550,8 @@
# <- { "return": {} }
##
{ 'command': 'migrate',
- 'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool',
+ 'data': {'uri': 'str', '*blk': 'bool',
+ '*inc': { 'type': 'bool', 'features': [ 'deprecated' ] },
'*detach': 'bool', '*resume': 'bool' } }
##
diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
index a82597f18e..fee7079afa 100644
--- a/migration/migration-hmp-cmds.c
+++ b/migration/migration-hmp-cmds.c
@@ -745,6 +745,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
const char *uri = qdict_get_str(qdict, "uri");
Error *err = NULL;
+ if (inc) {
+ warn_report("option '-i' is deprecated. Use 'blockdev-mirror + NBD'"
+ " instead.");
+ }
+
qmp_migrate(uri, !!blk, blk, !!inc, inc,
false, false, true, resume, &err);
if (hmp_handle_error(mon, err)) {
diff --git a/migration/migration.c b/migration/migration.c
index 6ba5e145ac..b8b3ba58df 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1603,6 +1603,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
{
Error *local_err = NULL;
+ if (blk_inc) {
+ warn_report("parameter 'inc' is deprecated. Use blockdev-mirror with"
+ " NBD instead");
+ }
+
if (resume) {
if (s->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
error_setg(errp, "Cannot resume if there is no "
--
2.41.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v5 2/7] migration: migrate 'inc' command option is deprecated.
2023-10-17 11:52 ` [PATCH v5 2/7] migration: migrate 'inc' command option is deprecated Juan Quintela
@ 2023-10-17 13:52 ` Markus Armbruster
2023-10-17 15:21 ` Juan Quintela
0 siblings, 1 reply; 19+ messages in thread
From: Markus Armbruster @ 2023-10-17 13:52 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas,
Thomas Huth
Juan Quintela <quintela@redhat.com> writes:
> Use blockdev-mirror with NBD instead.
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
> Improve documentation and style (thanks Markus)
> ---
> docs/about/deprecated.rst | 8 ++++++++
> qapi/migration.json | 8 +++++++-
> migration/migration-hmp-cmds.c | 5 +++++
> migration/migration.c | 5 +++++
> 4 files changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index 2febd2d12f..fc6adf1dea 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -461,3 +461,11 @@ Migration
> ``skipped`` field in Migration stats has been deprecated. It hasn't
> been used for more than 10 years.
>
> +``inc`` migrate command option (since 8.2)
> +''''''''''''''''''''''''''''''''''''''''''
> +
> +Use blockdev-mirror with NBD instead.
> +
> +As an intermediate step the ``inc`` functionality can be achieved by
> +setting the ``block-incremental`` migration parameter to ``true``.
> +But this parameter is also deprecated.
> diff --git a/qapi/migration.json b/qapi/migration.json
> index db3df12d6c..fa7f4f2575 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -1524,6 +1524,11 @@
> #
> # @resume: resume one paused migration, default "off". (since 3.0)
> #
> +# Features:
> +#
> +# @deprecated: Member @inc is deprecated. Use blockdev-mirror with
> +# NBD instead.
> +#
> # Returns: nothing on success
> #
> # Since: 0.14
> @@ -1545,7 +1550,8 @@
> # <- { "return": {} }
> ##
> { 'command': 'migrate',
> - 'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool',
> + 'data': {'uri': 'str', '*blk': 'bool',
> + '*inc': { 'type': 'bool', 'features': [ 'deprecated' ] },
> '*detach': 'bool', '*resume': 'bool' } }
>
> ##
> diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
> index a82597f18e..fee7079afa 100644
> --- a/migration/migration-hmp-cmds.c
> +++ b/migration/migration-hmp-cmds.c
> @@ -745,6 +745,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
> const char *uri = qdict_get_str(qdict, "uri");
> Error *err = NULL;
>
> + if (inc) {
> + warn_report("option '-i' is deprecated. Use 'blockdev-mirror + NBD'"
> + " instead.");
Convention: an error or warning message is a single phrase, with no
newline or trailing punctuation. The simplest way to conform to it is
something like
warn_report("option '-i' is deprecated;"
" use blockdev-mirror with NBD instead.");
> + }
> +
> qmp_migrate(uri, !!blk, blk, !!inc, inc,
> false, false, true, resume, &err);
> if (hmp_handle_error(mon, err)) {
> diff --git a/migration/migration.c b/migration/migration.c
> index 6ba5e145ac..b8b3ba58df 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1603,6 +1603,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
> {
> Error *local_err = NULL;
>
> + if (blk_inc) {
> + warn_report("parameter 'inc' is deprecated. Use blockdev-mirror with"
> + " NBD instead");
Likewise.
> + }
> +
> if (resume) {
> if (s->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
> error_setg(errp, "Cannot resume if there is no "
Other than that
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5 2/7] migration: migrate 'inc' command option is deprecated.
2023-10-17 13:52 ` Markus Armbruster
@ 2023-10-17 15:21 ` Juan Quintela
2023-10-18 6:54 ` Markus Armbruster
0 siblings, 1 reply; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 15:21 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas,
Thomas Huth
Markus Armbruster <armbru@redhat.com> wrote:
> Juan Quintela <quintela@redhat.com> writes:
>
>> Use blockdev-mirror with NBD instead.
>>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>>
>> ---
>>
>> Improve documentation and style (thanks Markus)
>> ---
>> docs/about/deprecated.rst | 8 ++++++++
>> qapi/migration.json | 8 +++++++-
>> migration/migration-hmp-cmds.c | 5 +++++
>> migration/migration.c | 5 +++++
>> 4 files changed, 25 insertions(+), 1 deletion(-)
>>
>> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
>> index 2febd2d12f..fc6adf1dea 100644
>> --- a/docs/about/deprecated.rst
>> +++ b/docs/about/deprecated.rst
>> @@ -461,3 +461,11 @@ Migration
>> ``skipped`` field in Migration stats has been deprecated. It hasn't
>> been used for more than 10 years.
>>
>> +``inc`` migrate command option (since 8.2)
>> +''''''''''''''''''''''''''''''''''''''''''
>> +
>> +Use blockdev-mirror with NBD instead.
>> +
>> +As an intermediate step the ``inc`` functionality can be achieved by
>> +setting the ``block-incremental`` migration parameter to ``true``.
>> +But this parameter is also deprecated.
>> diff --git a/qapi/migration.json b/qapi/migration.json
>> index db3df12d6c..fa7f4f2575 100644
>> --- a/qapi/migration.json
>> +++ b/qapi/migration.json
>> @@ -1524,6 +1524,11 @@
>> #
>> # @resume: resume one paused migration, default "off". (since 3.0)
>> #
>> +# Features:
>> +#
>> +# @deprecated: Member @inc is deprecated. Use blockdev-mirror with
>> +# NBD instead.
>> +#
>> # Returns: nothing on success
>> #
>> # Since: 0.14
>> @@ -1545,7 +1550,8 @@
>> # <- { "return": {} }
>> ##
>> { 'command': 'migrate',
>> - 'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool',
>> + 'data': {'uri': 'str', '*blk': 'bool',
>> + '*inc': { 'type': 'bool', 'features': [ 'deprecated' ] },
>> '*detach': 'bool', '*resume': 'bool' } }
>>
>> ##
>> diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
>> index a82597f18e..fee7079afa 100644
>> --- a/migration/migration-hmp-cmds.c
>> +++ b/migration/migration-hmp-cmds.c
>> @@ -745,6 +745,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
>> const char *uri = qdict_get_str(qdict, "uri");
>> Error *err = NULL;
>>
>> + if (inc) {
>> + warn_report("option '-i' is deprecated. Use 'blockdev-mirror + NBD'"
>> + " instead.");
>
> Convention: an error or warning message is a single phrase, with no
> newline or trailing punctuation. The simplest way to conform to it is
> something like
>
> warn_report("option '-i' is deprecated;"
> " use blockdev-mirror with NBD instead.");
then the trailing dot is not needed, right?
>> + }
>> +
>> qmp_migrate(uri, !!blk, blk, !!inc, inc,
>> false, false, true, resume, &err);
>> if (hmp_handle_error(mon, err)) {
>> diff --git a/migration/migration.c b/migration/migration.c
>> index 6ba5e145ac..b8b3ba58df 100644
>> --- a/migration/migration.c
>> +++ b/migration/migration.c
>> @@ -1603,6 +1603,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
>> {
>> Error *local_err = NULL;
>>
>> + if (blk_inc) {
>> + warn_report("parameter 'inc' is deprecated. Use blockdev-mirror with"
>> + " NBD instead");
>
> Likewise.
>
>> + }
>> +
>> if (resume) {
>> if (s->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
>> error_setg(errp, "Cannot resume if there is no "
>
> Other than that
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
OK, fixing it.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5 2/7] migration: migrate 'inc' command option is deprecated.
2023-10-17 15:21 ` Juan Quintela
@ 2023-10-18 6:54 ` Markus Armbruster
0 siblings, 0 replies; 19+ messages in thread
From: Markus Armbruster @ 2023-10-18 6:54 UTC (permalink / raw)
To: Juan Quintela
Cc: Markus Armbruster, qemu-devel, libvir-list, Leonardo Bras,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas, Thomas Huth
Juan Quintela <quintela@redhat.com> writes:
> Markus Armbruster <armbru@redhat.com> wrote:
>> Juan Quintela <quintela@redhat.com> writes:
>>
>>> Use blockdev-mirror with NBD instead.
>>>
>>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
>>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>>>
>>> ---
>>>
>>> Improve documentation and style (thanks Markus)
>>> ---
>>> docs/about/deprecated.rst | 8 ++++++++
>>> qapi/migration.json | 8 +++++++-
>>> migration/migration-hmp-cmds.c | 5 +++++
>>> migration/migration.c | 5 +++++
>>> 4 files changed, 25 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
>>> index 2febd2d12f..fc6adf1dea 100644
>>> --- a/docs/about/deprecated.rst
>>> +++ b/docs/about/deprecated.rst
>>> @@ -461,3 +461,11 @@ Migration
>>> ``skipped`` field in Migration stats has been deprecated. It hasn't
>>> been used for more than 10 years.
>>>
>>> +``inc`` migrate command option (since 8.2)
>>> +''''''''''''''''''''''''''''''''''''''''''
>>> +
>>> +Use blockdev-mirror with NBD instead.
>>> +
>>> +As an intermediate step the ``inc`` functionality can be achieved by
>>> +setting the ``block-incremental`` migration parameter to ``true``.
>>> +But this parameter is also deprecated.
>>> diff --git a/qapi/migration.json b/qapi/migration.json
>>> index db3df12d6c..fa7f4f2575 100644
>>> --- a/qapi/migration.json
>>> +++ b/qapi/migration.json
>>> @@ -1524,6 +1524,11 @@
>>> #
>>> # @resume: resume one paused migration, default "off". (since 3.0)
>>> #
>>> +# Features:
>>> +#
>>> +# @deprecated: Member @inc is deprecated. Use blockdev-mirror with
>>> +# NBD instead.
>>> +#
>>> # Returns: nothing on success
>>> #
>>> # Since: 0.14
>>> @@ -1545,7 +1550,8 @@
>>> # <- { "return": {} }
>>> ##
>>> { 'command': 'migrate',
>>> - 'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool',
>>> + 'data': {'uri': 'str', '*blk': 'bool',
>>> + '*inc': { 'type': 'bool', 'features': [ 'deprecated' ] },
>>> '*detach': 'bool', '*resume': 'bool' } }
>>>
>>> ##
>>> diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
>>> index a82597f18e..fee7079afa 100644
>>> --- a/migration/migration-hmp-cmds.c
>>> +++ b/migration/migration-hmp-cmds.c
>>> @@ -745,6 +745,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
>>> const char *uri = qdict_get_str(qdict, "uri");
>>> Error *err = NULL;
>>>
>>> + if (inc) {
>>> + warn_report("option '-i' is deprecated. Use 'blockdev-mirror + NBD'"
>>> + " instead.");
>>
>> Convention: an error or warning message is a single phrase, with no
>> newline or trailing punctuation. The simplest way to conform to it is
>> something like
>>
>> warn_report("option '-i' is deprecated;"
>> " use blockdev-mirror with NBD instead.");
>
> then the trailing dot is not needed, right?
No! Comical screwup on my part %-}
>>> + }
>>> +
>>> qmp_migrate(uri, !!blk, blk, !!inc, inc,
>>> false, false, true, resume, &err);
>>> if (hmp_handle_error(mon, err)) {
>>> diff --git a/migration/migration.c b/migration/migration.c
>>> index 6ba5e145ac..b8b3ba58df 100644
>>> --- a/migration/migration.c
>>> +++ b/migration/migration.c
>>> @@ -1603,6 +1603,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
>>> {
>>> Error *local_err = NULL;
>>>
>>> + if (blk_inc) {
>>> + warn_report("parameter 'inc' is deprecated. Use blockdev-mirror with"
>>> + " NBD instead");
>>
>> Likewise.
>>
>>> + }
>>> +
>>> if (resume) {
>>> if (s->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
>>> error_setg(errp, "Cannot resume if there is no "
>>
>> Other than that
>> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
> OK, fixing it.
Thanks!
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v5 3/7] migration: migrate 'blk' command option is deprecated.
2023-10-17 11:52 [PATCH v5 0/7] Migration deprecated parts Juan Quintela
2023-10-17 11:52 ` [PATCH v5 1/7] migration: Print block status when needed Juan Quintela
2023-10-17 11:52 ` [PATCH v5 2/7] migration: migrate 'inc' command option is deprecated Juan Quintela
@ 2023-10-17 11:52 ` Juan Quintela
2023-10-17 13:57 ` Markus Armbruster
2023-10-17 11:52 ` [PATCH v5 4/7] migration: Deprecate block migration Juan Quintela
` (3 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 11:52 UTC (permalink / raw)
To: qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas, Thomas Huth
Use blocked-mirror with NBD instead.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
Improve documentation and style (markus)
---
docs/about/deprecated.rst | 10 ++++++++++
qapi/migration.json | 6 ++++--
migration/migration-hmp-cmds.c | 5 +++++
migration/migration.c | 5 +++++
4 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index fc6adf1dea..0149f040b6 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -469,3 +469,13 @@ Use blockdev-mirror with NBD instead.
As an intermediate step the ``inc`` functionality can be achieved by
setting the ``block-incremental`` migration parameter to ``true``.
But this parameter is also deprecated.
+
+``blk`` migrate command option (since 8.2)
+''''''''''''''''''''''''''''''''''''''''''
+
+Use blockdev-mirror with NBD instead.
+
+As an intermediate step the ``blk`` functionality can be achieved by
+setting the ``block`` migration capability to ``true``.
+But this capability is also deprecated.
+
diff --git a/qapi/migration.json b/qapi/migration.json
index fa7f4f2575..59a07b50f0 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -1527,7 +1527,8 @@
# Features:
#
# @deprecated: Member @inc is deprecated. Use blockdev-mirror with
-# NBD instead.
+# NBD instead. Member @blk is deprecated. Use blockdev-mirror
+# with NBD instead.
#
# Returns: nothing on success
#
@@ -1550,7 +1551,8 @@
# <- { "return": {} }
##
{ 'command': 'migrate',
- 'data': {'uri': 'str', '*blk': 'bool',
+ 'data': {'uri': 'str',
+ '*blk': { 'type': 'bool', 'features': [ 'deprecated' ] },
'*inc': { 'type': 'bool', 'features': [ 'deprecated' ] },
'*detach': 'bool', '*resume': 'bool' } }
diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
index fee7079afa..bfeb1a476a 100644
--- a/migration/migration-hmp-cmds.c
+++ b/migration/migration-hmp-cmds.c
@@ -750,6 +750,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
" instead.");
}
+ if (blk) {
+ warn_report("option '-b' is deprecated. Use 'blockdev-mirror + NBD'"
+ " instead.");
+ }
+
qmp_migrate(uri, !!blk, blk, !!inc, inc,
false, false, true, resume, &err);
if (hmp_handle_error(mon, err)) {
diff --git a/migration/migration.c b/migration/migration.c
index b8b3ba58df..4da7fcfe0f 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1608,6 +1608,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
" NBD instead");
}
+ if (blk) {
+ warn_report("capability 'blk is deprecated. Use blockdev-mirror with"
+ " NBD instead");
+ }
+
if (resume) {
if (s->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
error_setg(errp, "Cannot resume if there is no "
--
2.41.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v5 3/7] migration: migrate 'blk' command option is deprecated.
2023-10-17 11:52 ` [PATCH v5 3/7] migration: migrate 'blk' " Juan Quintela
@ 2023-10-17 13:57 ` Markus Armbruster
2023-10-17 15:35 ` Juan Quintela
0 siblings, 1 reply; 19+ messages in thread
From: Markus Armbruster @ 2023-10-17 13:57 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas,
Thomas Huth
Juan Quintela <quintela@redhat.com> writes:
> Use blocked-mirror with NBD instead.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
>
> ---
>
> Improve documentation and style (markus)
> ---
> docs/about/deprecated.rst | 10 ++++++++++
> qapi/migration.json | 6 ++++--
> migration/migration-hmp-cmds.c | 5 +++++
> migration/migration.c | 5 +++++
> 4 files changed, 24 insertions(+), 2 deletions(-)
>
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index fc6adf1dea..0149f040b6 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -469,3 +469,13 @@ Use blockdev-mirror with NBD instead.
> As an intermediate step the ``inc`` functionality can be achieved by
> setting the ``block-incremental`` migration parameter to ``true``.
> But this parameter is also deprecated.
> +
> +``blk`` migrate command option (since 8.2)
> +''''''''''''''''''''''''''''''''''''''''''
> +
> +Use blockdev-mirror with NBD instead.
> +
> +As an intermediate step the ``blk`` functionality can be achieved by
> +setting the ``block`` migration capability to ``true``.
> +But this capability is also deprecated.
> +
> diff --git a/qapi/migration.json b/qapi/migration.json
> index fa7f4f2575..59a07b50f0 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -1527,7 +1527,8 @@
> # Features:
> #
> # @deprecated: Member @inc is deprecated. Use blockdev-mirror with
> -# NBD instead.
> +# NBD instead. Member @blk is deprecated. Use blockdev-mirror
> +# with NBD instead.
Better:
# @deprecated: Members @inc and @blk are deprecated. Use
# blockdev-mirror with NBD instead.
> #
> # Returns: nothing on success
> #
> @@ -1550,7 +1551,8 @@
> # <- { "return": {} }
> ##
> { 'command': 'migrate',
> - 'data': {'uri': 'str', '*blk': 'bool',
> + 'data': {'uri': 'str',
> + '*blk': { 'type': 'bool', 'features': [ 'deprecated' ] },
> '*inc': { 'type': 'bool', 'features': [ 'deprecated' ] },
> '*detach': 'bool', '*resume': 'bool' } }
>
> diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
> index fee7079afa..bfeb1a476a 100644
> --- a/migration/migration-hmp-cmds.c
> +++ b/migration/migration-hmp-cmds.c
> @@ -750,6 +750,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
> " instead.");
> }
>
> + if (blk) {
> + warn_report("option '-b' is deprecated. Use 'blockdev-mirror + NBD'"
> + " instead.");
warn_report("option '-b' is deprecated;"
" use blockdev-mirror with NBD instead.");
> + }
> +
> qmp_migrate(uri, !!blk, blk, !!inc, inc,
> false, false, true, resume, &err);
> if (hmp_handle_error(mon, err)) {
> diff --git a/migration/migration.c b/migration/migration.c
> index b8b3ba58df..4da7fcfe0f 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1608,6 +1608,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
> " NBD instead");
> }
>
> + if (blk) {
> + warn_report("capability 'blk is deprecated. Use blockdev-mirror with"
> + " NBD instead");
> + }
Capability? Isn't this a parameter?
"'blk" lacks a closing single quote.
I figure we want
warn_report("parameter 'blk' is deprecated;"
" use blockdev-mirror with NBD instead.");
> +
> if (resume) {
> if (s->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
> error_setg(errp, "Cannot resume if there is no "
Other than that
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5 3/7] migration: migrate 'blk' command option is deprecated.
2023-10-17 13:57 ` Markus Armbruster
@ 2023-10-17 15:35 ` Juan Quintela
0 siblings, 0 replies; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 15:35 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas,
Thomas Huth
Markus Armbruster <armbru@redhat.com> wrote:
> Juan Quintela <quintela@redhat.com> writes:
>
>> Use blocked-mirror with NBD instead.
>>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>
>> ---
>>
>> Improve documentation and style (markus)
>> ---
>> docs/about/deprecated.rst | 10 ++++++++++
>> qapi/migration.json | 6 ++++--
>> migration/migration-hmp-cmds.c | 5 +++++
>> migration/migration.c | 5 +++++
>> 4 files changed, 24 insertions(+), 2 deletions(-)
>>
>> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
>> index fc6adf1dea..0149f040b6 100644
>> --- a/docs/about/deprecated.rst
>> +++ b/docs/about/deprecated.rst
>> @@ -469,3 +469,13 @@ Use blockdev-mirror with NBD instead.
>> As an intermediate step the ``inc`` functionality can be achieved by
>> setting the ``block-incremental`` migration parameter to ``true``.
>> But this parameter is also deprecated.
>> +
>> +``blk`` migrate command option (since 8.2)
>> +''''''''''''''''''''''''''''''''''''''''''
>> +
>> +Use blockdev-mirror with NBD instead.
>> +
>> +As an intermediate step the ``blk`` functionality can be achieved by
>> +setting the ``block`` migration capability to ``true``.
>> +But this capability is also deprecated.
>> +
>> diff --git a/qapi/migration.json b/qapi/migration.json
>> index fa7f4f2575..59a07b50f0 100644
>> --- a/qapi/migration.json
>> +++ b/qapi/migration.json
>> @@ -1527,7 +1527,8 @@
>> # Features:
>> #
>> # @deprecated: Member @inc is deprecated. Use blockdev-mirror with
>> -# NBD instead.
>> +# NBD instead. Member @blk is deprecated. Use blockdev-mirror
>> +# with NBD instead.
>
> Better:
>
> # @deprecated: Members @inc and @blk are deprecated. Use
> # blockdev-mirror with NBD instead.
Fixed.
>> #
>> # Returns: nothing on success
>> #
>> @@ -1550,7 +1551,8 @@
>> # <- { "return": {} }
>> ##
>> { 'command': 'migrate',
>> - 'data': {'uri': 'str', '*blk': 'bool',
>> + 'data': {'uri': 'str',
>> + '*blk': { 'type': 'bool', 'features': [ 'deprecated' ] },
>> '*inc': { 'type': 'bool', 'features': [ 'deprecated' ] },
>> '*detach': 'bool', '*resume': 'bool' } }
>>
>> diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
>> index fee7079afa..bfeb1a476a 100644
>> --- a/migration/migration-hmp-cmds.c
>> +++ b/migration/migration-hmp-cmds.c
>> @@ -750,6 +750,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
>> " instead.");
>> }
>>
>> + if (blk) {
>> + warn_report("option '-b' is deprecated. Use 'blockdev-mirror + NBD'"
>> + " instead.");
>
> warn_report("option '-b' is deprecated;"
> " use blockdev-mirror with NBD instead.");
Fixed (removed the trailing dot)
>> + }
>> +
>> qmp_migrate(uri, !!blk, blk, !!inc, inc,
>> false, false, true, resume, &err);
>> if (hmp_handle_error(mon, err)) {
>> diff --git a/migration/migration.c b/migration/migration.c
>> index b8b3ba58df..4da7fcfe0f 100644
>> --- a/migration/migration.c
>> +++ b/migration/migration.c
>> @@ -1608,6 +1608,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
>> " NBD instead");
>> }
>>
>> + if (blk) {
>> + warn_report("capability 'blk is deprecated. Use blockdev-mirror with"
>> + " NBD instead");
>> + }
>
> Capability? Isn't this a parameter?
>
> "'blk" lacks a closing single quote.
You are right. You need to set the 'blk capability for substitution,
but this is a parameter. My fault.
> I figure we want
>
> warn_report("parameter 'blk' is deprecated;"
> " use blockdev-mirror with NBD instead.");
>
>> +
>> if (resume) {
>> if (s->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
>> error_setg(errp, "Cannot resume if there is no "
>
> Other than that
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
Thanks,
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v5 4/7] migration: Deprecate block migration
2023-10-17 11:52 [PATCH v5 0/7] Migration deprecated parts Juan Quintela
` (2 preceding siblings ...)
2023-10-17 11:52 ` [PATCH v5 3/7] migration: migrate 'blk' " Juan Quintela
@ 2023-10-17 11:52 ` Juan Quintela
2023-10-17 13:59 ` Markus Armbruster
2023-10-17 11:52 ` [PATCH v5 5/7] migration: Deprecate old compression method Juan Quintela
` (2 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 11:52 UTC (permalink / raw)
To: qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas, Kevin Wolf, Hanna Czenczek
It is obsolete. It is better to use driver-mirror with NBD instead.
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>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
---
docs/about/deprecated.rst | 10 ++++++++++
qapi/migration.json | 29 ++++++++++++++++++++++++-----
migration/block.c | 3 +++
migration/options.c | 9 ++++++++-
4 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 0149f040b6..5eaf096040 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -479,3 +479,13 @@ As an intermediate step the ``blk`` functionality can be achieved by
setting the ``block`` migration capability to ``true``.
But this capability is also deprecated.
+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
+``blockdev-mirror`` + NBD" in docs/interop/live-block-operations.rst
+for a detailed explanation.
+
diff --git a/qapi/migration.json b/qapi/migration.json
index 59a07b50f0..c7633b22c0 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -269,11 +269,15 @@
# average memory load of the virtual CPU indirectly. Note that
# zero means guest doesn't dirty memory. (Since 8.1)
#
+# Features:
+#
+# @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',
@@ -525,6 +529,9 @@
#
# Features:
#
+# @deprecated: Member @block is deprecated. Use blockdev-mirror with
+# NBD instead.
+#
# @unstable: Members @x-colo and @x-ignore-shared are experimental.
#
# Since: 1.2
@@ -534,7 +541,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',
@@ -835,6 +843,9 @@
#
# Features:
#
+# @deprecated: Member @block-incremental is deprecated. Use
+# blockdev-mirror with NBD instead.
+#
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
# are experimental.
#
@@ -850,7 +861,7 @@
'tls-creds', 'tls-hostname', 'tls-authz', 'max-bandwidth',
'avail-switchover-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',
@@ -1011,6 +1022,9 @@
#
# Features:
#
+# @deprecated: Member @block-incremental is deprecated. Use
+# blockdev-mirror with NBD instead.
+#
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
# are experimental.
#
@@ -1040,7 +1054,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',
@@ -1225,6 +1240,9 @@
#
# Features:
#
+# @deprecated: Member @block-incremental is deprecated. Use
+# blockdev-mirror with NBD instead.
+#
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
# are experimental.
#
@@ -1251,7 +1269,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 b60698d6e2..7682f4fbd2 100644
--- a/migration/block.c
+++ b/migration/block.c
@@ -731,6 +731,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 blockdev-mirror with"
+ "NBD instead.");
+
ret = init_blk_migration(f);
if (ret < 0) {
return ret;
diff --git a/migration/options.c b/migration/options.c
index 42fb818956..0d0a3f8edb 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"
@@ -473,10 +474,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 blockdev-mirror with NBD instead.\n");
return false;
}
#endif
+ if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
+ warn_report("Block migration is deprecated. "
+ "Use blockdev-mirror with NBD instead.");
+ }
#ifndef CONFIG_REPLICATION
if (new_caps[MIGRATION_CAPABILITY_X_COLO]) {
@@ -1386,6 +1391,8 @@ static void migrate_params_apply(MigrateSetParameters *params, Error **errp)
}
if (params->has_block_incremental) {
+ warn_report("Block migration is deprecated. "
+ "Use blockdev-mirror with NBD instead.");
s->parameters.block_incremental = params->block_incremental;
}
if (params->has_multifd_channels) {
--
2.41.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v5 4/7] migration: Deprecate block migration
2023-10-17 11:52 ` [PATCH v5 4/7] migration: Deprecate block migration Juan Quintela
@ 2023-10-17 13:59 ` Markus Armbruster
2023-10-17 15:41 ` Juan Quintela
0 siblings, 1 reply; 19+ messages in thread
From: Markus Armbruster @ 2023-10-17 13:59 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas,
Kevin Wolf, Hanna Czenczek
Juan Quintela <quintela@redhat.com> writes:
> It is obsolete. It is better to use driver-mirror with NBD instead.
>
> 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>
> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> docs/about/deprecated.rst | 10 ++++++++++
> qapi/migration.json | 29 ++++++++++++++++++++++++-----
> migration/block.c | 3 +++
> migration/options.c | 9 ++++++++-
> 4 files changed, 45 insertions(+), 6 deletions(-)
>
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index 0149f040b6..5eaf096040 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -479,3 +479,13 @@ As an intermediate step the ``blk`` functionality can be achieved by
> setting the ``block`` migration capability to ``true``.
> But this capability is also deprecated.
>
> +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
> +``blockdev-mirror`` + NBD" in docs/interop/live-block-operations.rst
> +for a detailed explanation.
> +
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 59a07b50f0..c7633b22c0 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -269,11 +269,15 @@
> # average memory load of the virtual CPU indirectly. Note that
> # zero means guest doesn't dirty memory. (Since 8.1)
> #
> +# Features:
> +#
> +# @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',
> @@ -525,6 +529,9 @@
> #
> # Features:
> #
> +# @deprecated: Member @block is deprecated. Use blockdev-mirror with
> +# NBD instead.
> +#
> # @unstable: Members @x-colo and @x-ignore-shared are experimental.
> #
> # Since: 1.2
> @@ -534,7 +541,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',
> @@ -835,6 +843,9 @@
> #
> # Features:
> #
> +# @deprecated: Member @block-incremental is deprecated. Use
Two spaces between sentences for consistency, please.
> +# blockdev-mirror with NBD instead.
> +#
> # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
> # are experimental.
> #
> @@ -850,7 +861,7 @@
> 'tls-creds', 'tls-hostname', 'tls-authz', 'max-bandwidth',
> 'avail-switchover-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',
> @@ -1011,6 +1022,9 @@
> #
> # Features:
> #
> +# @deprecated: Member @block-incremental is deprecated. Use
Likewise.
> +# blockdev-mirror with NBD instead.
> +#
> # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
> # are experimental.
> #
> @@ -1040,7 +1054,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',
> @@ -1225,6 +1240,9 @@
> #
> # Features:
> #
> +# @deprecated: Member @block-incremental is deprecated. Use
Likewise.
> +# blockdev-mirror with NBD instead.
> +#
> # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
> # are experimental.
> #
> @@ -1251,7 +1269,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 b60698d6e2..7682f4fbd2 100644
> --- a/migration/block.c
> +++ b/migration/block.c
> @@ -731,6 +731,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 blockdev-mirror with"
> + "NBD instead.");
warn_report("block migration is deprecated;"
" use blockdev-mirror with NBD instead.");
> +
> ret = init_blk_migration(f);
> if (ret < 0) {
> return ret;
> diff --git a/migration/options.c b/migration/options.c
> index 42fb818956..0d0a3f8edb 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"
> @@ -473,10 +474,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 blockdev-mirror with NBD instead.\n");
> return false;
> }
> #endif
> + if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
> + warn_report("Block migration is deprecated. "
> + "Use blockdev-mirror with NBD instead.");
Likewise.
> + }
>
> #ifndef CONFIG_REPLICATION
> if (new_caps[MIGRATION_CAPABILITY_X_COLO]) {
> @@ -1386,6 +1391,8 @@ static void migrate_params_apply(MigrateSetParameters *params, Error **errp)
> }
>
> if (params->has_block_incremental) {
> + warn_report("Block migration is deprecated. "
> + "Use blockdev-mirror with NBD instead.");
Likewise.
> s->parameters.block_incremental = params->block_incremental;
> }
> if (params->has_multifd_channels) {
Other than that
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5 4/7] migration: Deprecate block migration
2023-10-17 13:59 ` Markus Armbruster
@ 2023-10-17 15:41 ` Juan Quintela
0 siblings, 0 replies; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 15:41 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas,
Kevin Wolf, Hanna Czenczek
Markus Armbruster <armbru@redhat.com> wrote:
> Juan Quintela <quintela@redhat.com> writes:
>
>> #
>> +# @deprecated: Member @block-incremental is deprecated. Use
>
> Two spaces between sentences for consistency, please.
Done. At least here I did the copy and paste right.
>> diff --git a/migration/block.c b/migration/block.c
>> index b60698d6e2..7682f4fbd2 100644
>> --- a/migration/block.c
>> +++ b/migration/block.c
>> @@ -731,6 +731,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 blockdev-mirror with"
>> + "NBD instead.");
>
> warn_report("block migration is deprecated;"
> " use blockdev-mirror with NBD instead.");
Done.
>> + if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
>> + warn_report("Block migration is deprecated. "
>> + "Use blockdev-mirror with NBD instead.");
>
> Likewise.
>
>> + }
>>
>> #ifndef CONFIG_REPLICATION
>> if (new_caps[MIGRATION_CAPABILITY_X_COLO]) {
>> @@ -1386,6 +1391,8 @@ static void migrate_params_apply(MigrateSetParameters *params, Error **errp)
>> }
>>
>> if (params->has_block_incremental) {
>> + warn_report("Block migration is deprecated. "
>> + "Use blockdev-mirror with NBD instead.");
>
> Likewise.
>
>> s->parameters.block_incremental = params->block_incremental;
>> }
>> if (params->has_multifd_channels) {
>
> Other than that
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
Thanks.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v5 5/7] migration: Deprecate old compression method
2023-10-17 11:52 [PATCH v5 0/7] Migration deprecated parts Juan Quintela
` (3 preceding siblings ...)
2023-10-17 11:52 ` [PATCH v5 4/7] migration: Deprecate block migration Juan Quintela
@ 2023-10-17 11:52 ` Juan Quintela
2023-10-17 14:03 ` Markus Armbruster
2023-10-17 11:52 ` [PATCH v5 6/7] [RFC] migration: Make -i/-b an error for hmp and qmp Juan Quintela
2023-10-17 11:52 ` [PATCH v5 7/7] [RFC] migration: Remove helpers needed for -i/-b migrate options Juan Quintela
6 siblings, 1 reply; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 11:52 UTC (permalink / raw)
To: qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas
Signed-off-by: Juan Quintela <quintela@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: Peter Xu <peterx@redhat.com>
---
docs/about/deprecated.rst | 8 ++++
qapi/migration.json | 79 +++++++++++++++++++++++++--------------
migration/options.c | 13 +++++++
3 files changed, 72 insertions(+), 28 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 5eaf096040..f46baf9ee9 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -489,3 +489,11 @@ 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.
+
diff --git a/qapi/migration.json b/qapi/migration.json
index c7633b22c0..834506a02b 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -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',
@@ -885,16 +898,16 @@
# @announce-step: Increase in delay (in milliseconds) between
# subsequent packets in the announcement (Since 4.0)
#
-# @compress-level: compression level
+# @compress-level: compression level.
#
-# @compress-threads: compression thread count
+# @compress-threads: compression thread count.
#
# @compress-wait-thread: Controls behavior when all compression
# threads are currently busy. If true (default), wait for a free
# compression thread to become available; otherwise, send the page
-# uncompressed. (Since 3.1)
+# uncompressed. (Since 3.1)
#
-# @decompress-threads: decompression thread count
+# @decompress-threads: decompression thread count.
#
# @throttle-trigger-threshold: The ratio of bytes_dirty_period and
# bytes_xfer_period to trigger throttling. It is expressed as
@@ -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,
@@ -1101,16 +1120,16 @@
# @announce-step: Increase in delay (in milliseconds) between
# subsequent packets in the announcement (Since 4.0)
#
-# @compress-level: compression level
+# @compress-level: compression level.
#
-# @compress-threads: compression thread count
+# @compress-threads: compression thread count.
#
# @compress-wait-thread: Controls behavior when all compression
# threads are currently busy. If true (default), wait for a free
# compression thread to become available; otherwise, send the page
-# uncompressed. (Since 3.1)
+# uncompressed. (Since 3.1)
#
-# @decompress-threads: decompression thread count
+# @decompress-threads: decompression thread count.
#
# @throttle-trigger-threshold: The ratio of bytes_dirty_period and
# bytes_xfer_period to trigger throttling. It is expressed as
@@ -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
diff --git a/migration/options.c b/migration/options.c
index 0d0a3f8edb..7cb99a82a5 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -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"
@@ -1321,18 +1326,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;
}
--
2.41.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v5 5/7] migration: Deprecate old compression method
2023-10-17 11:52 ` [PATCH v5 5/7] migration: Deprecate old compression method Juan Quintela
@ 2023-10-17 14:03 ` Markus Armbruster
2023-10-17 17:15 ` Juan Quintela
0 siblings, 1 reply; 19+ messages in thread
From: Markus Armbruster @ 2023-10-17 14:03 UTC (permalink / raw)
To: Juan Quintela
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas
Juan Quintela <quintela@redhat.com> writes:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
> Acked-by: Peter Xu <peterx@redhat.com>
> ---
> docs/about/deprecated.rst | 8 ++++
> qapi/migration.json | 79 +++++++++++++++++++++++++--------------
> migration/options.c | 13 +++++++
> 3 files changed, 72 insertions(+), 28 deletions(-)
>
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index 5eaf096040..f46baf9ee9 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -489,3 +489,11 @@ 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.
> +
> diff --git a/qapi/migration.json b/qapi/migration.json
> index c7633b22c0..834506a02b 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -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.
Two spaces between sentences for consistency, please.
> #
> # 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.
Likewise.
> #
> # @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.
Likewise.
> #
> # @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',
> @@ -885,16 +898,16 @@
> # @announce-step: Increase in delay (in milliseconds) between
> # subsequent packets in the announcement (Since 4.0)
> #
> -# @compress-level: compression level
> +# @compress-level: compression level.
> #
> -# @compress-threads: compression thread count
> +# @compress-threads: compression thread count.
> #
> # @compress-wait-thread: Controls behavior when all compression
> # threads are currently busy. If true (default), wait for a free
> # compression thread to become available; otherwise, send the page
> -# uncompressed. (Since 3.1)
> +# uncompressed. (Since 3.1)
> #
> -# @decompress-threads: decompression thread count
> +# @decompress-threads: decompression thread count.
> #
> # @throttle-trigger-threshold: The ratio of bytes_dirty_period and
> # bytes_xfer_period to trigger throttling. It is expressed as
Unrelated.
> @@ -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.
Two spaces between sentences for consistency, please.
> #
> # @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": {} }
> ##
Thanks for taking care of updating the example!
> { 'command': 'migrate-set-parameters', 'boxed': true,
> @@ -1101,16 +1120,16 @@
> # @announce-step: Increase in delay (in milliseconds) between
> # subsequent packets in the announcement (Since 4.0)
> #
> -# @compress-level: compression level
> +# @compress-level: compression level.
> #
> -# @compress-threads: compression thread count
> +# @compress-threads: compression thread count.
> #
> # @compress-wait-thread: Controls behavior when all compression
> # threads are currently busy. If true (default), wait for a free
> # compression thread to become available; otherwise, send the page
> -# uncompressed. (Since 3.1)
> +# uncompressed. (Since 3.1)
> #
> -# @decompress-threads: decompression thread count
> +# @decompress-threads: decompression thread count.
> #
> # @throttle-trigger-threshold: The ratio of bytes_dirty_period and
> # bytes_xfer_period to trigger throttling. It is expressed as
Unrelated.
> @@ -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.
Two spaces between sentences for consistency, please.
> #
> # @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
Thanks again!
> diff --git a/migration/options.c b/migration/options.c
> index 0d0a3f8edb..7cb99a82a5 100644
> --- a/migration/options.c
> +++ b/migration/options.c
> @@ -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"
> @@ -1321,18 +1326,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;
> }
Other than that
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5 5/7] migration: Deprecate old compression method
2023-10-17 14:03 ` Markus Armbruster
@ 2023-10-17 17:15 ` Juan Quintela
2023-10-18 7:13 ` Markus Armbruster
0 siblings, 1 reply; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 17:15 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, libvir-list, Leonardo Bras, Peter Xu, Fam Zheng,
Stefan Hajnoczi, Eric Blake, qemu-block, Fabiano Rosas
Markus Armbruster <armbru@redhat.com> wrote:
> Juan Quintela <quintela@redhat.com> writes:
>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
>> Acked-by: Peter Xu <peterx@redhat.com>
>> # @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.
>
> Two spaces between sentences for consistency, please.
I have reviewed all the patches again. Let's hope that I didn't miss
one.
>> # @announce-step: Increase in delay (in milliseconds) between
>> # subsequent packets in the announcement (Since 4.0)
>> #
>> -# @compress-level: compression level
>> +# @compress-level: compression level.
>> #
>> -# @compress-threads: compression thread count
>> +# @compress-threads: compression thread count.
>> #
>> # @compress-wait-thread: Controls behavior when all compression
>> # threads are currently busy. If true (default), wait for a free
>> # compression thread to become available; otherwise, send the page
>> -# uncompressed. (Since 3.1)
>> +# uncompressed. (Since 3.1)
>> #
>> -# @decompress-threads: decompression thread count
>> +# @decompress-threads: decompression thread count.
>> #
>> # @throttle-trigger-threshold: The ratio of bytes_dirty_period and
>> # bytes_xfer_period to trigger throttling. It is expressed as
>
> Unrelated.
Rebases are bad for you O:-)
>> @@ -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.
>
> Two spaces between sentences for consistency, please.
Done.
>> @@ -1078,7 +1097,7 @@
>> # Example:
>> #
>> # -> { "execute": "migrate-set-parameters" ,
>> -# "arguments": { "compress-level": 1 } }
>> +# "arguments": { "multifd-channels": 5 } }
>> # <- { "return": {} }
>> ##
>
> Thanks for taking care of updating the example!
You are welcome. grep for all occurences of compress-level and friends
has its advantages.
>> # @compress-wait-thread: Controls behavior when all compression
>> # threads are currently busy. If true (default), wait for a free
>> # compression thread to become available; otherwise, send the page
>> -# uncompressed. (Since 3.1)
>> +# uncompressed. (Since 3.1)
>> #
>> -# @decompress-threads: decompression thread count
>> +# @decompress-threads: decompression thread count.
>> #
>> # @throttle-trigger-threshold: The ratio of bytes_dirty_period and
>> # bytes_xfer_period to trigger throttling. It is expressed as
>
> Unrelated.
I have removed the periods.
But I have a question, why the descriptions that are less than one line
don't have period and the other have it.
>> 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. "
Once here, I did s/Old/old/
as all your examples of description start with lowercase.
>> + "Use multifd compression methods instead.");
>> s->parameters.decompress_threads = params->decompress_threads;
>> }
>
> Other than that
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
Thanks for your patience.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v5 5/7] migration: Deprecate old compression method
2023-10-17 17:15 ` Juan Quintela
@ 2023-10-18 7:13 ` Markus Armbruster
0 siblings, 0 replies; 19+ messages in thread
From: Markus Armbruster @ 2023-10-18 7:13 UTC (permalink / raw)
To: Juan Quintela
Cc: Markus Armbruster, qemu-devel, libvir-list, Leonardo Bras,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas
Juan Quintela <quintela@redhat.com> writes:
> Markus Armbruster <armbru@redhat.com> wrote:
>> Juan Quintela <quintela@redhat.com> writes:
>>
>>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>>> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
>>> Acked-by: Peter Xu <peterx@redhat.com>
>
>
>>> # @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.
>>
>> Two spaces between sentences for consistency, please.
>
> I have reviewed all the patches again. Let's hope that I didn't miss
> one.
>
>>> # @announce-step: Increase in delay (in milliseconds) between
>>> # subsequent packets in the announcement (Since 4.0)
>>> #
>>> -# @compress-level: compression level
>>> +# @compress-level: compression level.
>>> #
>>> -# @compress-threads: compression thread count
>>> +# @compress-threads: compression thread count.
>>> #
>>> # @compress-wait-thread: Controls behavior when all compression
>>> # threads are currently busy. If true (default), wait for a free
>>> # compression thread to become available; otherwise, send the page
>>> -# uncompressed. (Since 3.1)
>>> +# uncompressed. (Since 3.1)
>>> #
>>> -# @decompress-threads: decompression thread count
>>> +# @decompress-threads: decompression thread count.
>>> #
>>> # @throttle-trigger-threshold: The ratio of bytes_dirty_period and
>>> # bytes_xfer_period to trigger throttling. It is expressed as
>>
>> Unrelated.
>
> Rebases are bad for you O:-)
>
>>> @@ -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.
>>
>> Two spaces between sentences for consistency, please.
>
> Done.
>>> @@ -1078,7 +1097,7 @@
>>> # Example:
>>> #
>>> # -> { "execute": "migrate-set-parameters" ,
>>> -# "arguments": { "compress-level": 1 } }
>>> +# "arguments": { "multifd-channels": 5 } }
>>> # <- { "return": {} }
>>> ##
>>
>> Thanks for taking care of updating the example!
>
> You are welcome. grep for all occurences of compress-level and friends
> has its advantages.
>
>>> # @compress-wait-thread: Controls behavior when all compression
>>> # threads are currently busy. If true (default), wait for a free
>>> # compression thread to become available; otherwise, send the page
>>> -# uncompressed. (Since 3.1)
>>> +# uncompressed. (Since 3.1)
>>> #
>>> -# @decompress-threads: decompression thread count
>>> +# @decompress-threads: decompression thread count.
>>> #
>>> # @throttle-trigger-threshold: The ratio of bytes_dirty_period and
>>> # bytes_xfer_period to trigger throttling. It is expressed as
>>
>> Unrelated.
>
> I have removed the periods.
>
> But I have a question, why the descriptions that are less than one line
> don't have period and the other have it.
When the description consists of multiple sentences, we obviously need
to end them with punctuation.
Sometimes the description isn't a sentence, just a phrase,
e.g. "decompression thread count". No punctuation then.
Sometimes it's a single sentence. Then we roll dice.
>>> 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. "
>
> Once here, I did s/Old/old/
>
> as all your examples of description start with lowercase.
Yes, please.
>>> + "Use multifd compression methods instead.");
>>> s->parameters.decompress_threads = params->decompress_threads;
>>> }
>>
>> Other than that
>> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
> Thanks for your patience.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v5 6/7] [RFC] migration: Make -i/-b an error for hmp and qmp
2023-10-17 11:52 [PATCH v5 0/7] Migration deprecated parts Juan Quintela
` (4 preceding siblings ...)
2023-10-17 11:52 ` [PATCH v5 5/7] migration: Deprecate old compression method Juan Quintela
@ 2023-10-17 11:52 ` Juan Quintela
2023-10-17 11:52 ` [PATCH v5 7/7] [RFC] migration: Remove helpers needed for -i/-b migrate options Juan Quintela
6 siblings, 0 replies; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 11:52 UTC (permalink / raw)
To: qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas
[DON'T MERGE]
Block migration is obsolete, users should use blockdev-mirror
instead.
Make it one error to set them.
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
migration/migration-hmp-cmds.c | 13 +++++++------
migration/migration.c | 33 ++++++---------------------------
2 files changed, 13 insertions(+), 33 deletions(-)
diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
index bfeb1a476a..0acc866c79 100644
--- a/migration/migration-hmp-cmds.c
+++ b/migration/migration-hmp-cmds.c
@@ -746,16 +746,17 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
Error *err = NULL;
if (inc) {
- warn_report("option '-i' is deprecated. Use 'blockdev-mirror + NBD'"
- " instead.");
+ monitor_printf(mon, "option '-i' is deprecated. Use"
+ " 'blockdev-mirror + NBD' instead.");
+ return;
}
if (blk) {
- warn_report("option '-b' is deprecated. Use 'blockdev-mirror + NBD'"
- " instead.");
+ monitor_printf(mon, "option '-b' is deprecated. Use"
+ " 'blockdev-mirror + NBD' instead.");
+ return;
}
-
- qmp_migrate(uri, !!blk, blk, !!inc, inc,
+ qmp_migrate(uri, false, false, false, false,
false, false, true, resume, &err);
if (hmp_handle_error(mon, err)) {
return;
diff --git a/migration/migration.c b/migration/migration.c
index 4da7fcfe0f..9a695299ba 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1601,16 +1601,16 @@ bool migration_is_blocked(Error **errp)
static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
bool resume, Error **errp)
{
- Error *local_err = NULL;
-
if (blk_inc) {
- warn_report("parameter 'inc' is deprecated. Use blockdev-mirror with"
- " NBD instead");
+ error_setg(errp, "parameter 'inc' is deprecated. Use blockdev-mirror"
+ " with NBD instead");
+ return false;
}
if (blk) {
- warn_report("capability 'blk is deprecated. Use blockdev-mirror with"
- " NBD instead");
+ error_setg(errp, "capability 'blk is deprecated. Use blockdev-mirror"
+ " with NBD instead");
+ return false;
}
if (resume) {
@@ -1662,27 +1662,6 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
return false;
}
- if (blk || blk_inc) {
- if (migrate_colo()) {
- error_setg(errp, "No disk migration is required in COLO mode");
- return false;
- }
- if (migrate_block() || migrate_block_incremental()) {
- error_setg(errp, "Command options are incompatible with "
- "current migration capabilities");
- return false;
- }
- if (!migrate_cap_set(MIGRATION_CAPABILITY_BLOCK, true, &local_err)) {
- error_propagate(errp, local_err);
- return false;
- }
- s->must_remove_block_options = true;
- }
-
- if (blk_inc) {
- migrate_set_block_incremental(true);
- }
-
if (migrate_init(s, errp)) {
return false;
}
--
2.41.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v5 7/7] [RFC] migration: Remove helpers needed for -i/-b migrate options
2023-10-17 11:52 [PATCH v5 0/7] Migration deprecated parts Juan Quintela
` (5 preceding siblings ...)
2023-10-17 11:52 ` [PATCH v5 6/7] [RFC] migration: Make -i/-b an error for hmp and qmp Juan Quintela
@ 2023-10-17 11:52 ` Juan Quintela
6 siblings, 0 replies; 19+ messages in thread
From: Juan Quintela @ 2023-10-17 11:52 UTC (permalink / raw)
To: qemu-devel
Cc: libvir-list, Leonardo Bras, Juan Quintela, Markus Armbruster,
Peter Xu, Fam Zheng, Stefan Hajnoczi, Eric Blake, qemu-block,
Fabiano Rosas
[DON'T MERGE]
We were abusing capabilities and parameters to implement -i/-b.
Previous patch convert that options into one error. Remove all the
helpers needed to implement them.
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
migration/migration.h | 4 ----
migration/options.h | 6 ------
migration/migration.c | 2 --
migration/options.c | 41 -----------------------------------------
4 files changed, 53 deletions(-)
diff --git a/migration/migration.h b/migration/migration.h
index ae82004892..937a3534c5 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -382,10 +382,6 @@ struct MigrationState {
/* mutex to protect errp */
QemuMutex error_mutex;
- /* Do we have to clean up -b/-i from old migrate parameters */
- /* This feature is deprecated and will be removed */
- bool must_remove_block_options;
-
/*
* Global switch on whether we need to store the global state
* during migration.
diff --git a/migration/options.h b/migration/options.h
index 237f2d6b4a..e41ea38322 100644
--- a/migration/options.h
+++ b/migration/options.h
@@ -62,7 +62,6 @@ bool migrate_tls(void);
/* capabilities helpers */
bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp);
-bool migrate_cap_set(int cap, bool value, Error **errp);
/* parameters */
@@ -93,14 +92,9 @@ const char *migrate_tls_creds(void);
const char *migrate_tls_hostname(void);
uint64_t migrate_xbzrle_cache_size(void);
-/* parameters setters */
-
-void migrate_set_block_incremental(bool value);
-
/* parameters helpers */
bool migrate_params_check(MigrationParameters *params, Error **errp);
void migrate_params_init(MigrationParameters *params);
-void block_cleanup_parameters(void);
#endif
diff --git a/migration/migration.c b/migration/migration.c
index 9a695299ba..9792bd98ca 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1205,7 +1205,6 @@ static void migrate_fd_cleanup(MigrationState *s)
error_report_err(error_copy(s->error));
}
notifier_list_notify(&migration_state_notifiers, s);
- block_cleanup_parameters();
yank_unregister_instance(MIGRATION_YANK_INSTANCE);
}
@@ -1715,7 +1714,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
"a valid migration protocol");
migrate_set_state(&s->state, MIGRATION_STATUS_SETUP,
MIGRATION_STATUS_FAILED);
- block_cleanup_parameters();
}
if (local_err) {
diff --git a/migration/options.c b/migration/options.c
index 7cb99a82a5..3be7e35f40 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -631,26 +631,6 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp)
return true;
}
-bool migrate_cap_set(int cap, bool value, Error **errp)
-{
- MigrationState *s = migrate_get_current();
- bool new_caps[MIGRATION_CAPABILITY__MAX];
-
- if (migration_is_running(s->state)) {
- error_setg(errp, QERR_MIGRATION_ACTIVE);
- return false;
- }
-
- memcpy(new_caps, s->capabilities, sizeof(new_caps));
- new_caps[cap] = value;
-
- if (!migrate_caps_check(s->capabilities, new_caps, errp)) {
- return false;
- }
- s->capabilities[cap] = value;
- return true;
-}
-
MigrationCapabilityStatusList *qmp_query_migrate_capabilities(Error **errp)
{
MigrationCapabilityStatusList *head = NULL, **tail = &head;
@@ -877,29 +857,8 @@ uint64_t migrate_xbzrle_cache_size(void)
return s->parameters.xbzrle_cache_size;
}
-/* parameter setters */
-
-void migrate_set_block_incremental(bool value)
-{
- MigrationState *s = migrate_get_current();
-
- s->parameters.block_incremental = value;
-}
-
/* parameters helpers */
-void block_cleanup_parameters(void)
-{
- MigrationState *s = migrate_get_current();
-
- if (s->must_remove_block_options) {
- /* setting to false can never fail */
- migrate_cap_set(MIGRATION_CAPABILITY_BLOCK, false, &error_abort);
- migrate_set_block_incremental(false);
- s->must_remove_block_options = false;
- }
-}
-
AnnounceParameters *migrate_announce_params(void)
{
static AnnounceParameters ap;
--
2.41.0
^ permalink raw reply related [flat|nested] 19+ messages in thread