qemu/migration/threadinfo.h
Fabiano Rosas 01ec0f3a92 migration/multifd: Protect accesses to migration_threads
This doubly linked list is common for all the multifd and migration
threads so we need to avoid concurrent access.

Add a mutex to protect the data from concurrent access. This fixes a
crash when removing two MigrationThread objects from the list at the
same time during cleanup of multifd threads.

Fixes: 671326201d ("migration: Introduce interface query-migrationthreads")
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20230607161306.31425-3-farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2023-07-26 10:55:56 +02:00

26 lines
713 B
C

/*
* 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);