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
|
``blockdev-add`` calls. See :doc:`/interop/live-block-operations` for
|
||||||
details.
|
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)
|
``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
|
checked, but an implicit conversion happened, so that e.g. string
|
||||||
values could be assigned to integer device properties or vice versa.
|
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
|
QEMU Machine Protocol (QMP) events
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ system_ss.add(files(
|
|||||||
'savevm.c',
|
'savevm.c',
|
||||||
'socket.c',
|
'socket.c',
|
||||||
'tls.c',
|
'tls.c',
|
||||||
'threadinfo.c',
|
|
||||||
), gnutls, zlib)
|
), gnutls, zlib)
|
||||||
|
|
||||||
if get_option('replication').allowed()
|
if get_option('replication').allowed()
|
||||||
|
|||||||
@@ -59,7 +59,6 @@
|
|||||||
#include "net/announce.h"
|
#include "net/announce.h"
|
||||||
#include "qemu/queue.h"
|
#include "qemu/queue.h"
|
||||||
#include "multifd.h"
|
#include "multifd.h"
|
||||||
#include "threadinfo.h"
|
|
||||||
#include "qemu/yank.h"
|
#include "qemu/yank.h"
|
||||||
#include "system/cpus.h"
|
#include "system/cpus.h"
|
||||||
#include "yank_functions.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)
|
static void *migration_thread(void *opaque)
|
||||||
{
|
{
|
||||||
MigrationState *s = opaque;
|
MigrationState *s = opaque;
|
||||||
MigrationThread *thread = NULL;
|
|
||||||
int64_t setup_start = qemu_clock_get_ms(QEMU_CLOCK_HOST);
|
int64_t setup_start = qemu_clock_get_ms(QEMU_CLOCK_HOST);
|
||||||
MigThrError thr_error;
|
MigThrError thr_error;
|
||||||
bool urgent = false;
|
bool urgent = false;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
thread = migration_threads_add(MIGRATION_THREAD_SRC_MAIN,
|
|
||||||
qemu_get_thread_id());
|
|
||||||
|
|
||||||
rcu_register_thread();
|
rcu_register_thread();
|
||||||
|
|
||||||
update_iteration_initial_status(s);
|
update_iteration_initial_status(s);
|
||||||
@@ -3854,7 +3849,6 @@ out:
|
|||||||
migration_iteration_finish(s);
|
migration_iteration_finish(s);
|
||||||
object_unref(OBJECT(s));
|
object_unref(OBJECT(s));
|
||||||
rcu_unregister_thread();
|
rcu_unregister_thread();
|
||||||
migration_threads_remove(thread);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@
|
|||||||
#include "qemu-file.h"
|
#include "qemu-file.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
#include "multifd.h"
|
#include "multifd.h"
|
||||||
#include "threadinfo.h"
|
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "qemu/yank.h"
|
#include "qemu/yank.h"
|
||||||
#include "io/channel-file.h"
|
#include "io/channel-file.h"
|
||||||
@@ -658,13 +657,10 @@ int multifd_send_sync_main(MultiFDSyncReq req)
|
|||||||
static void *multifd_send_thread(void *opaque)
|
static void *multifd_send_thread(void *opaque)
|
||||||
{
|
{
|
||||||
MultiFDSendParams *p = opaque;
|
MultiFDSendParams *p = opaque;
|
||||||
MigrationThread *thread = NULL;
|
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
bool use_packets = multifd_use_packets();
|
bool use_packets = multifd_use_packets();
|
||||||
|
|
||||||
thread = migration_threads_add(p->name, qemu_get_thread_id());
|
|
||||||
|
|
||||||
trace_multifd_send_thread_start(p->id);
|
trace_multifd_send_thread_start(p->id);
|
||||||
rcu_register_thread();
|
rcu_register_thread();
|
||||||
|
|
||||||
@@ -779,7 +775,6 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
rcu_unregister_thread();
|
rcu_unregister_thread();
|
||||||
migration_threads_remove(thread);
|
|
||||||
trace_multifd_send_thread_end(p->id, p->packets_sent);
|
trace_multifd_send_thread_end(p->id, p->packets_sent);
|
||||||
|
|
||||||
return NULL;
|
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',
|
{ 'command': 'query-vcpu-dirty-limit',
|
||||||
'returns': [ 'DirtyLimitInfo' ] }
|
'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:
|
# @snapshot-save:
|
||||||
#
|
#
|
||||||
|
|||||||
Reference in New Issue
Block a user