migration: Drop deprecated QMP command query-migrationthreads

Deprecated in commit 228529d1fe (migration: Deprecate
query-migrationthreads command), v9.2.0.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/qemu-devel/20260108125512.2234147-2-armbru@redhat.com
[fixed title underline length]
Signed-off-by: Fabiano Rosas <farosas@suse.de>
This commit is contained in:
Markus Armbruster
2026-01-08 13:55:11 +01:00
committed by Fabiano Rosas
parent 2339d0a1cf
commit 7686f2c5d7
8 changed files with 9 additions and 139 deletions

View File

@@ -111,14 +111,6 @@ options are removed in favor of using explicit ``blockdev-create`` and
``blockdev-add`` calls. See :doc:`/interop/live-block-operations` for
details.
``query-migrationthreads`` (since 9.2)
''''''''''''''''''''''''''''''''''''''
To be removed with no replacement, as it reports only a limited set of
threads (for example, it only reports source side of multifd threads,
without reporting any destination threads, or non-multifd source threads).
For debugging purpose, please use ``-name $VM,debug-threads=on`` instead.
``block-job-pause`` (since 10.1)
''''''''''''''''''''''''''''''''

View File

@@ -757,6 +757,15 @@ or list arguments were silently ignored. Other argument types were not
checked, but an implicit conversion happened, so that e.g. string
values could be assigned to integer device properties or vice versa.
``query-migrationthreads`` (removed in 11.0)
''''''''''''''''''''''''''''''''''''''''''''
Removed with no replacement, as it reported only a limited set of
threads (for example, it only reported source side of multifd threads,
without reporting any destination threads, or non-multifd source
threads). For debugging purpose, please use ``-name
$VM,debug-threads=on`` instead.
QEMU Machine Protocol (QMP) events
----------------------------------

View File

@@ -36,7 +36,6 @@ system_ss.add(files(
'savevm.c',
'socket.c',
'tls.c',
'threadinfo.c',
), gnutls, zlib)
if get_option('replication').allowed()

View File

@@ -59,7 +59,6 @@
#include "net/announce.h"
#include "qemu/queue.h"
#include "multifd.h"
#include "threadinfo.h"
#include "qemu/yank.h"
#include "system/cpus.h"
#include "yank_functions.h"
@@ -3744,16 +3743,12 @@ static void qemu_savevm_wait_unplug(MigrationState *s, int old_state,
static void *migration_thread(void *opaque)
{
MigrationState *s = opaque;
MigrationThread *thread = NULL;
int64_t setup_start = qemu_clock_get_ms(QEMU_CLOCK_HOST);
MigThrError thr_error;
bool urgent = false;
Error *local_err = NULL;
int ret;
thread = migration_threads_add(MIGRATION_THREAD_SRC_MAIN,
qemu_get_thread_id());
rcu_register_thread();
update_iteration_initial_status(s);
@@ -3854,7 +3849,6 @@ out:
migration_iteration_finish(s);
object_unref(OBJECT(s));
rcu_unregister_thread();
migration_threads_remove(thread);
return NULL;
}

View File

@@ -29,7 +29,6 @@
#include "qemu-file.h"
#include "trace.h"
#include "multifd.h"
#include "threadinfo.h"
#include "options.h"
#include "qemu/yank.h"
#include "io/channel-file.h"
@@ -658,13 +657,10 @@ int multifd_send_sync_main(MultiFDSyncReq req)
static void *multifd_send_thread(void *opaque)
{
MultiFDSendParams *p = opaque;
MigrationThread *thread = NULL;
Error *local_err = NULL;
int ret = 0;
bool use_packets = multifd_use_packets();
thread = migration_threads_add(p->name, qemu_get_thread_id());
trace_multifd_send_thread_start(p->id);
rcu_register_thread();
@@ -779,7 +775,6 @@ out:
}
rcu_unregister_thread();
migration_threads_remove(thread);
trace_multifd_send_thread_end(p->id, p->packets_sent);
return NULL;

View File

@@ -1,64 +0,0 @@
/*
* Migration Threads info
*
* Copyright (c) 2022 HUAWEI TECHNOLOGIES CO., LTD.
*
* Authors:
* Jiang Jiacheng <jiangjiacheng@huawei.com>
*
* This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory.
*/
#include "qemu/osdep.h"
#include "qemu/queue.h"
#include "qemu/lockable.h"
#include "threadinfo.h"
QemuMutex migration_threads_lock;
static QLIST_HEAD(, MigrationThread) migration_threads;
static void __attribute__((constructor)) migration_threads_init(void)
{
qemu_mutex_init(&migration_threads_lock);
}
MigrationThread *migration_threads_add(const char *name, int thread_id)
{
MigrationThread *thread = g_new0(MigrationThread, 1);
thread->name = name;
thread->thread_id = thread_id;
WITH_QEMU_LOCK_GUARD(&migration_threads_lock) {
QLIST_INSERT_HEAD(&migration_threads, thread, node);
}
return thread;
}
void migration_threads_remove(MigrationThread *thread)
{
QEMU_LOCK_GUARD(&migration_threads_lock);
if (thread) {
QLIST_REMOVE(thread, node);
g_free(thread);
}
}
MigrationThreadInfoList *qmp_query_migrationthreads(Error **errp)
{
MigrationThreadInfoList *head = NULL;
MigrationThreadInfoList **tail = &head;
MigrationThread *thread = NULL;
QEMU_LOCK_GUARD(&migration_threads_lock);
QLIST_FOREACH(thread, &migration_threads, node) {
MigrationThreadInfo *info = g_new0(MigrationThreadInfo, 1);
info->name = g_strdup(thread->name);
info->thread_id = thread->thread_id;
QAPI_LIST_APPEND(tail, info);
}
return head;
}

View File

@@ -1,25 +0,0 @@
/*
* Migration Threads info
*
* Copyright (c) 2022 HUAWEI TECHNOLOGIES CO., LTD.
*
* Authors:
* Jiang Jiacheng <jiangjiacheng@huawei.com>
*
* This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory.
*/
#include "qapi/error.h"
#include "qapi/qapi-commands-migration.h"
typedef struct MigrationThread MigrationThread;
struct MigrationThread {
const char *name; /* the name of migration thread */
int thread_id; /* ID of the underlying host thread */
QLIST_ENTRY(MigrationThread) node;
};
MigrationThread *migration_threads_add(const char *name, int thread_id);
void migration_threads_remove(MigrationThread *info);

View File

@@ -2054,36 +2054,6 @@
{ 'command': 'query-vcpu-dirty-limit',
'returns': [ 'DirtyLimitInfo' ] }
##
# @MigrationThreadInfo:
#
# Information about migrationthreads
#
# @name: the name of migration thread
#
# @thread-id: ID of the underlying host thread
#
# Since: 7.2
##
{ 'struct': 'MigrationThreadInfo',
'data': {'name': 'str',
'thread-id': 'int'} }
##
# @query-migrationthreads:
#
# Return information of migration threads
#
# Features:
#
# @deprecated: This command is deprecated with no replacement yet.
#
# Since: 7.2
##
{ 'command': 'query-migrationthreads',
'returns': ['MigrationThreadInfo'],
'features': ['deprecated'] }
##
# @snapshot-save:
#