mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 02:24:51 +00:00
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:
committed by
Fabiano Rosas
parent
2339d0a1cf
commit
7686f2c5d7
@@ -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)
|
||||
''''''''''''''''''''''''''''''''
|
||||
|
||||
|
||||
@@ -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
|
||||
----------------------------------
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@ system_ss.add(files(
|
||||
'savevm.c',
|
||||
'socket.c',
|
||||
'tls.c',
|
||||
'threadinfo.c',
|
||||
), gnutls, zlib)
|
||||
|
||||
if get_option('replication').allowed()
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
@@ -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:
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user