COLO was broken for QEMU release 10.0/10.1 without anyone noticed. One reason might be that we don't have an unit test for COLO (which we explicitly require now for any new migration feature). The other reason should be that there are just no more active COLO users, at least based on the latest development of QEMU.
I don't remember seeing anything really active in the past few years in COLO development. Meanwhile, COLO migration framework maintainer (Hailiang Zhang)'s last email to qemu-devel is in Dec 2021 where the patch proposed an email change (<[email protected]>). We've discussed this for a while, see latest discussions here (our thoughts of deprecating COLO framework might be earlier than that, but still): https://lore.kernel.org/r/[email protected]/ https://lore.kernel.org/r/[email protected] Let's make it partly official and put COLO into deprecation list. If anyone cares about COLO and is deploying it, please send an email to qemu-devel to discuss. Otherwise, let's try to save some energy for either maintainers or developers who is looking after QEMU. Let's save the work if we don't even know what the work is for. Cc: Lukáš Doktor <[email protected]> Cc: Juan Quintela <[email protected]> Cc: Dr. David Alan Gilbert <[email protected]> Cc: Zhang Chen <[email protected]> Cc: [email protected] Cc: Li Zhijian <[email protected]> Cc: Jason Wang <[email protected]> Signed-off-by: Peter Xu <[email protected]> --- docs/about/deprecated.rst | 6 ++++++ qapi/migration.json | 5 ++--- migration/options.c | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 7abb3dab59..b499b2acb0 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -580,3 +580,9 @@ command documentation for details on the ``fdset`` usage. The ``zero-blocks`` capability was part of the block migration which doesn't exist anymore since it was removed in QEMU v9.1. + +COLO migration framework (since 11.0) +''''''''''''''''''''''''''''''''''''' + +To be removed with no replacement, as the COLO migration framework doesn't +seem to have any active user for a while. diff --git a/qapi/migration.json b/qapi/migration.json index 201dedd982..3c868efe38 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -531,8 +531,7 @@ # # @unstable: Members @x-colo and @x-ignore-shared are experimental. # -# @deprecated: Member @zero-blocks is deprecated as being part of -# block migration which was already removed. +# @deprecated: Member @zero-blocks and @x-colo are deprecated. # # Since: 1.2 ## @@ -540,7 +539,7 @@ 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', { 'name': 'zero-blocks', 'features': [ 'deprecated' ] }, 'events', 'postcopy-ram', - { 'name': 'x-colo', 'features': [ 'unstable' ] }, + { 'name': 'x-colo', 'features': [ 'unstable', 'deprecated' ] }, 'release-ram', 'return-path', 'pause-before-switchover', 'multifd', 'dirty-bitmaps', 'postcopy-blocktime', 'late-block-activate', diff --git a/migration/options.c b/migration/options.c index 9a5a39c886..318850ba94 100644 --- a/migration/options.c +++ b/migration/options.c @@ -580,6 +580,10 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp) warn_report("zero-blocks capability is deprecated"); } + if (new_caps[MIGRATION_CAPABILITY_X_COLO]) { + warn_report("COLO migration framework is deprecated"); + } + #ifndef CONFIG_REPLICATION if (new_caps[MIGRATION_CAPABILITY_X_COLO]) { error_setg(errp, "QEMU compiled without replication module" -- 2.50.1
