* [PATCH] migration: Put thread names together with macros
@ 2024-10-11 15:36 Peter Xu
2024-10-11 17:29 ` Fabiano Rosas
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Peter Xu @ 2024-10-11 15:36 UTC (permalink / raw)
To: qemu-devel; +Cc: Fabiano Rosas, peterx, Yong Huang, Hailiang Zhang
Keep migration thread names together, so it's easier to see a list of all
possible migration threads.
Still two functional changes below besides the macro defintions:
- There's one dirty rate thread that we overlooked before, now we add
that too and name it as "mig/dirtyrate" following the old rules.
- The old name "mig/src/rp-thr" has "-thr" but it may not be useful if
it's a thread name anyway, while "rp" can be slightly hard to read.
Taking this chance to rename it to "mig/src/return", hopefully a better
name.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
migration/migration.h | 14 ++++++++++++++
migration/colo.c | 3 ++-
migration/dirtyrate.c | 6 ++++--
migration/migration.c | 9 +++++----
migration/multifd.c | 6 +++---
migration/postcopy-ram.c | 6 ++++--
migration/savevm.c | 3 ++-
7 files changed, 34 insertions(+), 13 deletions(-)
diff --git a/migration/migration.h b/migration/migration.h
index 38aa1402d5..b9ce5aa4ff 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -28,6 +28,20 @@
#include "sysemu/runstate.h"
#include "migration/misc.h"
+#define MIGRATION_THREAD_SNAPSHOT "mig/snapshot"
+#define MIGRATION_THREAD_DIRTY_RATE "mig/dirtyrate"
+
+#define MIGRATION_THREAD_SRC_MAIN "mig/src/main"
+#define MIGRATION_THREAD_SRC_MULTIFD "mig/src/send_%d"
+#define MIGRATION_THREAD_SRC_RETURN "mig/src/return"
+#define MIGRATION_THREAD_SRC_TLS "mig/src/tls"
+
+#define MIGRATION_THREAD_DST_COLO "mig/dst/colo"
+#define MIGRATION_THREAD_DST_MULTIFD "mig/src/recv_%d"
+#define MIGRATION_THREAD_DST_FAULT "mig/dst/fault"
+#define MIGRATION_THREAD_DST_LISTEN "mig/dst/listen"
+#define MIGRATION_THREAD_DST_PREEMPT "mig/dst/preempt"
+
struct PostcopyBlocktimeContext;
#define MIGRATION_RESUME_ACK_VALUE (1)
diff --git a/migration/colo.c b/migration/colo.c
index 6449490221..9590f281d0 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -935,7 +935,8 @@ void coroutine_fn colo_incoming_co(void)
assert(bql_locked());
assert(migration_incoming_colo_enabled());
- qemu_thread_create(&th, "mig/dst/colo", colo_process_incoming_thread,
+ qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO,
+ colo_process_incoming_thread,
mis, QEMU_THREAD_JOINABLE);
mis->colo_incoming_co = qemu_coroutine_self();
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index 233acb0855..a74a6aeb56 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -29,6 +29,7 @@
#include "sysemu/runstate.h"
#include "exec/memory.h"
#include "qemu/xxhash.h"
+#include "migration.h"
/*
* total_dirty_pages is procted by BQL and is used
@@ -839,8 +840,9 @@ void qmp_calc_dirty_rate(int64_t calc_time,
init_dirtyrate_stat(config);
- qemu_thread_create(&thread, "get_dirtyrate", get_dirtyrate_thread,
- (void *)&config, QEMU_THREAD_DETACHED);
+ qemu_thread_create(&thread, MIGRATION_THREAD_DIRTY_RATE,
+ get_dirtyrate_thread, (void *)&config,
+ QEMU_THREAD_DETACHED);
}
diff --git a/migration/migration.c b/migration/migration.c
index f5f428e764..7609e0feed 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2484,7 +2484,7 @@ static int open_return_path_on_source(MigrationState *ms)
trace_open_return_path_on_source();
- qemu_thread_create(&ms->rp_state.rp_thread, "mig/src/rp-thr",
+ qemu_thread_create(&ms->rp_state.rp_thread, MIGRATION_THREAD_SRC_RETURN,
source_return_path_thread, ms, QEMU_THREAD_JOINABLE);
ms->rp_state.rp_thread_created = true;
@@ -3473,7 +3473,8 @@ static void *migration_thread(void *opaque)
Error *local_err = NULL;
int ret;
- thread = migration_threads_add("live_migration", qemu_get_thread_id());
+ thread = migration_threads_add(MIGRATION_THREAD_SRC_MAIN,
+ qemu_get_thread_id());
rcu_register_thread();
@@ -3823,10 +3824,10 @@ void migrate_fd_connect(MigrationState *s, Error *error_in)
}
if (migrate_background_snapshot()) {
- qemu_thread_create(&s->thread, "mig/snapshot",
+ qemu_thread_create(&s->thread, MIGRATION_THREAD_SNAPSHOT,
bg_migration_thread, s, QEMU_THREAD_JOINABLE);
} else {
- qemu_thread_create(&s->thread, "mig/src/main",
+ qemu_thread_create(&s->thread, MIGRATION_THREAD_SRC_MAIN,
migration_thread, s, QEMU_THREAD_JOINABLE);
}
s->migration_thread_running = true;
diff --git a/migration/multifd.c b/migration/multifd.c
index 9b200f4ad9..697fe86fdf 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -723,7 +723,7 @@ static bool multifd_tls_channel_connect(MultiFDSendParams *p,
args->p = p;
p->tls_thread_created = true;
- qemu_thread_create(&p->tls_thread, "mig/src/tls",
+ qemu_thread_create(&p->tls_thread, MIGRATION_THREAD_SRC_TLS,
multifd_tls_handshake_thread, args,
QEMU_THREAD_JOINABLE);
return true;
@@ -841,7 +841,7 @@ bool multifd_send_setup(void)
+ sizeof(uint64_t) * page_count;
p->packet = g_malloc0(p->packet_len);
}
- p->name = g_strdup_printf("mig/src/send_%d", i);
+ p->name = g_strdup_printf(MIGRATION_THREAD_SRC_MULTIFD, i);
p->write_flags = 0;
if (!multifd_new_send_channel_create(p, &local_err)) {
@@ -1259,7 +1259,7 @@ int multifd_recv_setup(Error **errp)
+ sizeof(uint64_t) * page_count;
p->packet = g_malloc0(p->packet_len);
}
- p->name = g_strdup_printf("mig/dst/recv_%d", i);
+ p->name = g_strdup_printf(MIGRATION_THREAD_DST_MULTIFD, i);
p->normal = g_new0(ram_addr_t, page_count);
p->zero = g_new0(ram_addr_t, page_count);
}
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 83f6160a36..a535fd2e30 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -1230,7 +1230,8 @@ int postcopy_ram_incoming_setup(MigrationIncomingState *mis)
return -1;
}
- postcopy_thread_create(mis, &mis->fault_thread, "mig/dst/fault",
+ postcopy_thread_create(mis, &mis->fault_thread,
+ MIGRATION_THREAD_DST_FAULT,
postcopy_ram_fault_thread, QEMU_THREAD_JOINABLE);
mis->have_fault_thread = true;
@@ -1250,7 +1251,8 @@ int postcopy_ram_incoming_setup(MigrationIncomingState *mis)
* This thread needs to be created after the temp pages because
* it'll fetch RAM_CHANNEL_POSTCOPY PostcopyTmpPage immediately.
*/
- postcopy_thread_create(mis, &mis->postcopy_prio_thread, "mig/dst/preempt",
+ postcopy_thread_create(mis, &mis->postcopy_prio_thread,
+ MIGRATION_THREAD_DST_PREEMPT,
postcopy_preempt_thread, QEMU_THREAD_JOINABLE);
mis->preempt_thread_status = PREEMPT_THREAD_CREATED;
}
diff --git a/migration/savevm.c b/migration/savevm.c
index 7e1e27182a..e796436979 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2131,7 +2131,8 @@ static int loadvm_postcopy_handle_listen(MigrationIncomingState *mis)
}
mis->have_listen_thread = true;
- postcopy_thread_create(mis, &mis->listen_thread, "mig/dst/listen",
+ postcopy_thread_create(mis, &mis->listen_thread,
+ MIGRATION_THREAD_DST_LISTEN,
postcopy_ram_listen_thread, QEMU_THREAD_DETACHED);
trace_loadvm_postcopy_handle_listen("return");
--
2.45.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] migration: Put thread names together with macros
2024-10-11 15:36 [PATCH] migration: Put thread names together with macros Peter Xu
@ 2024-10-11 17:29 ` Fabiano Rosas
2024-10-12 7:39 ` Yong Huang
2024-10-14 6:05 ` Zhang, Chen
2024-10-15 13:58 ` Peter Xu
2 siblings, 1 reply; 5+ messages in thread
From: Fabiano Rosas @ 2024-10-11 17:29 UTC (permalink / raw)
To: Peter Xu, qemu-devel; +Cc: peterx, Yong Huang, Hailiang Zhang
Peter Xu <peterx@redhat.com> writes:
> Keep migration thread names together, so it's easier to see a list of all
> possible migration threads.
>
> Still two functional changes below besides the macro defintions:
>
> - There's one dirty rate thread that we overlooked before, now we add
> that too and name it as "mig/dirtyrate" following the old rules.
>
> - The old name "mig/src/rp-thr" has "-thr" but it may not be useful if
> it's a thread name anyway, while "rp" can be slightly hard to read.
> Taking this chance to rename it to "mig/src/return", hopefully a better
> name.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] migration: Put thread names together with macros
2024-10-11 17:29 ` Fabiano Rosas
@ 2024-10-12 7:39 ` Yong Huang
0 siblings, 0 replies; 5+ messages in thread
From: Yong Huang @ 2024-10-12 7:39 UTC (permalink / raw)
To: Fabiano Rosas; +Cc: Peter Xu, qemu-devel, Hailiang Zhang
[-- Attachment #1: Type: text/plain, Size: 888 bytes --]
On Sat, Oct 12, 2024 at 1:29 AM Fabiano Rosas <farosas@suse.de> wrote:
> Peter Xu <peterx@redhat.com> writes:
>
> > Keep migration thread names together, so it's easier to see a list of all
> > possible migration threads.
> >
> > Still two functional changes below besides the macro defintions:
> >
> > - There's one dirty rate thread that we overlooked before, now we add
> > that too and name it as "mig/dirtyrate" following the old rules.
> >
> > - The old name "mig/src/rp-thr" has "-thr" but it may not be useful if
> > it's a thread name anyway, while "rp" can be slightly hard to read.
> > Taking this chance to rename it to "mig/src/return", hopefully a better
> > name.
> >
> > Signed-off-by: Peter Xu <peterx@redhat.com>
>
> Reviewed-by: Fabiano Rosas <farosas@suse.de>
>
Acked-by: Hyman Huang <yong.huang@smartx.com>
--
Best regards
[-- Attachment #2: Type: text/html, Size: 2011 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH] migration: Put thread names together with macros
2024-10-11 15:36 [PATCH] migration: Put thread names together with macros Peter Xu
2024-10-11 17:29 ` Fabiano Rosas
@ 2024-10-14 6:05 ` Zhang, Chen
2024-10-15 13:58 ` Peter Xu
2 siblings, 0 replies; 5+ messages in thread
From: Zhang, Chen @ 2024-10-14 6:05 UTC (permalink / raw)
To: Peter Xu, qemu-devel@nongnu.org
Cc: Fabiano Rosas, Yong Huang, Zhang, Hailiang
> -----Original Message-----
> From: qemu-devel-bounces+chen.zhang=intel.com@nongnu.org <qemu-
> devel-bounces+chen.zhang=intel.com@nongnu.org> On Behalf Of Peter Xu
> Sent: Friday, October 11, 2024 11:37 PM
> To: qemu-devel@nongnu.org
> Cc: Fabiano Rosas <farosas@suse.de>; peterx@redhat.com; Yong Huang
> <yong.huang@smartx.com>; Zhang, Hailiang <zhanghailiang@xfusion.com>
> Subject: [PATCH] migration: Put thread names together with macros
>
> Keep migration thread names together, so it's easier to see a list of all possible
> migration threads.
>
> Still two functional changes below besides the macro defintions:
>
> - There's one dirty rate thread that we overlooked before, now we add
> that too and name it as "mig/dirtyrate" following the old rules.
>
> - The old name "mig/src/rp-thr" has "-thr" but it may not be useful if
> it's a thread name anyway, while "rp" can be slightly hard to read.
> Taking this chance to rename it to "mig/src/return", hopefully a better
> name.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Zhang Chen <chen.zhang@intel.com>
Thanks
Chen
> ---
> migration/migration.h | 14 ++++++++++++++
> migration/colo.c | 3 ++-
> migration/dirtyrate.c | 6 ++++--
> migration/migration.c | 9 +++++----
> migration/multifd.c | 6 +++---
> migration/postcopy-ram.c | 6 ++++--
> migration/savevm.c | 3 ++-
> 7 files changed, 34 insertions(+), 13 deletions(-)
>
> diff --git a/migration/migration.h b/migration/migration.h index
> 38aa1402d5..b9ce5aa4ff 100644
> --- a/migration/migration.h
> +++ b/migration/migration.h
> @@ -28,6 +28,20 @@
> #include "sysemu/runstate.h"
> #include "migration/misc.h"
>
> +#define MIGRATION_THREAD_SNAPSHOT "mig/snapshot"
> +#define MIGRATION_THREAD_DIRTY_RATE "mig/dirtyrate"
> +
> +#define MIGRATION_THREAD_SRC_MAIN "mig/src/main"
> +#define MIGRATION_THREAD_SRC_MULTIFD "mig/src/send_%d"
> +#define MIGRATION_THREAD_SRC_RETURN "mig/src/return"
> +#define MIGRATION_THREAD_SRC_TLS "mig/src/tls"
> +
> +#define MIGRATION_THREAD_DST_COLO "mig/dst/colo"
> +#define MIGRATION_THREAD_DST_MULTIFD "mig/src/recv_%d"
> +#define MIGRATION_THREAD_DST_FAULT "mig/dst/fault"
> +#define MIGRATION_THREAD_DST_LISTEN "mig/dst/listen"
> +#define MIGRATION_THREAD_DST_PREEMPT "mig/dst/preempt"
> +
> struct PostcopyBlocktimeContext;
>
> #define MIGRATION_RESUME_ACK_VALUE (1) diff --git a/migration/colo.c
> b/migration/colo.c index 6449490221..9590f281d0 100644
> --- a/migration/colo.c
> +++ b/migration/colo.c
> @@ -935,7 +935,8 @@ void coroutine_fn colo_incoming_co(void)
> assert(bql_locked());
> assert(migration_incoming_colo_enabled());
>
> - qemu_thread_create(&th, "mig/dst/colo", colo_process_incoming_thread,
> + qemu_thread_create(&th, MIGRATION_THREAD_DST_COLO,
> + colo_process_incoming_thread,
> mis, QEMU_THREAD_JOINABLE);
>
> mis->colo_incoming_co = qemu_coroutine_self(); diff --git
> a/migration/dirtyrate.c b/migration/dirtyrate.c index
> 233acb0855..a74a6aeb56 100644
> --- a/migration/dirtyrate.c
> +++ b/migration/dirtyrate.c
> @@ -29,6 +29,7 @@
> #include "sysemu/runstate.h"
> #include "exec/memory.h"
> #include "qemu/xxhash.h"
> +#include "migration.h"
>
> /*
> * total_dirty_pages is procted by BQL and is used @@ -839,8 +840,9 @@
> void qmp_calc_dirty_rate(int64_t calc_time,
>
> init_dirtyrate_stat(config);
>
> - qemu_thread_create(&thread, "get_dirtyrate", get_dirtyrate_thread,
> - (void *)&config, QEMU_THREAD_DETACHED);
> + qemu_thread_create(&thread, MIGRATION_THREAD_DIRTY_RATE,
> + get_dirtyrate_thread, (void *)&config,
> + QEMU_THREAD_DETACHED);
> }
>
>
> diff --git a/migration/migration.c b/migration/migration.c index
> f5f428e764..7609e0feed 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -2484,7 +2484,7 @@ static int
> open_return_path_on_source(MigrationState *ms)
>
> trace_open_return_path_on_source();
>
> - qemu_thread_create(&ms->rp_state.rp_thread, "mig/src/rp-thr",
> + qemu_thread_create(&ms->rp_state.rp_thread,
> + MIGRATION_THREAD_SRC_RETURN,
> source_return_path_thread, ms, QEMU_THREAD_JOINABLE);
> ms->rp_state.rp_thread_created = true;
>
> @@ -3473,7 +3473,8 @@ static void *migration_thread(void *opaque)
> Error *local_err = NULL;
> int ret;
>
> - thread = migration_threads_add("live_migration", qemu_get_thread_id());
> + thread = migration_threads_add(MIGRATION_THREAD_SRC_MAIN,
> + qemu_get_thread_id());
>
> rcu_register_thread();
>
> @@ -3823,10 +3824,10 @@ void migrate_fd_connect(MigrationState *s,
> Error *error_in)
> }
>
> if (migrate_background_snapshot()) {
> - qemu_thread_create(&s->thread, "mig/snapshot",
> + qemu_thread_create(&s->thread, MIGRATION_THREAD_SNAPSHOT,
> bg_migration_thread, s, QEMU_THREAD_JOINABLE);
> } else {
> - qemu_thread_create(&s->thread, "mig/src/main",
> + qemu_thread_create(&s->thread, MIGRATION_THREAD_SRC_MAIN,
> migration_thread, s, QEMU_THREAD_JOINABLE);
> }
> s->migration_thread_running = true; diff --git a/migration/multifd.c
> b/migration/multifd.c index 9b200f4ad9..697fe86fdf 100644
> --- a/migration/multifd.c
> +++ b/migration/multifd.c
> @@ -723,7 +723,7 @@ static bool
> multifd_tls_channel_connect(MultiFDSendParams *p,
> args->p = p;
>
> p->tls_thread_created = true;
> - qemu_thread_create(&p->tls_thread, "mig/src/tls",
> + qemu_thread_create(&p->tls_thread, MIGRATION_THREAD_SRC_TLS,
> multifd_tls_handshake_thread, args,
> QEMU_THREAD_JOINABLE);
> return true;
> @@ -841,7 +841,7 @@ bool multifd_send_setup(void)
> + sizeof(uint64_t) * page_count;
> p->packet = g_malloc0(p->packet_len);
> }
> - p->name = g_strdup_printf("mig/src/send_%d", i);
> + p->name = g_strdup_printf(MIGRATION_THREAD_SRC_MULTIFD, i);
> p->write_flags = 0;
>
> if (!multifd_new_send_channel_create(p, &local_err)) { @@ -1259,7
> +1259,7 @@ int multifd_recv_setup(Error **errp)
> + sizeof(uint64_t) * page_count;
> p->packet = g_malloc0(p->packet_len);
> }
> - p->name = g_strdup_printf("mig/dst/recv_%d", i);
> + p->name = g_strdup_printf(MIGRATION_THREAD_DST_MULTIFD, i);
> p->normal = g_new0(ram_addr_t, page_count);
> p->zero = g_new0(ram_addr_t, page_count);
> }
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index
> 83f6160a36..a535fd2e30 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -1230,7 +1230,8 @@ int
> postcopy_ram_incoming_setup(MigrationIncomingState *mis)
> return -1;
> }
>
> - postcopy_thread_create(mis, &mis->fault_thread, "mig/dst/fault",
> + postcopy_thread_create(mis, &mis->fault_thread,
> + MIGRATION_THREAD_DST_FAULT,
> postcopy_ram_fault_thread, QEMU_THREAD_JOINABLE);
> mis->have_fault_thread = true;
>
> @@ -1250,7 +1251,8 @@ int
> postcopy_ram_incoming_setup(MigrationIncomingState *mis)
> * This thread needs to be created after the temp pages because
> * it'll fetch RAM_CHANNEL_POSTCOPY PostcopyTmpPage immediately.
> */
> - postcopy_thread_create(mis, &mis->postcopy_prio_thread,
> "mig/dst/preempt",
> + postcopy_thread_create(mis, &mis->postcopy_prio_thread,
> + MIGRATION_THREAD_DST_PREEMPT,
> postcopy_preempt_thread, QEMU_THREAD_JOINABLE);
> mis->preempt_thread_status = PREEMPT_THREAD_CREATED;
> }
> diff --git a/migration/savevm.c b/migration/savevm.c index
> 7e1e27182a..e796436979 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -2131,7 +2131,8 @@ static int
> loadvm_postcopy_handle_listen(MigrationIncomingState *mis)
> }
>
> mis->have_listen_thread = true;
> - postcopy_thread_create(mis, &mis->listen_thread, "mig/dst/listen",
> + postcopy_thread_create(mis, &mis->listen_thread,
> + MIGRATION_THREAD_DST_LISTEN,
> postcopy_ram_listen_thread, QEMU_THREAD_DETACHED);
> trace_loadvm_postcopy_handle_listen("return");
>
> --
> 2.45.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] migration: Put thread names together with macros
2024-10-11 15:36 [PATCH] migration: Put thread names together with macros Peter Xu
2024-10-11 17:29 ` Fabiano Rosas
2024-10-14 6:05 ` Zhang, Chen
@ 2024-10-15 13:58 ` Peter Xu
2 siblings, 0 replies; 5+ messages in thread
From: Peter Xu @ 2024-10-15 13:58 UTC (permalink / raw)
To: qemu-devel; +Cc: Fabiano Rosas, Yong Huang, Hailiang Zhang
On Fri, Oct 11, 2024 at 11:36:52AM -0400, Peter Xu wrote:
> Keep migration thread names together, so it's easier to see a list of all
> possible migration threads.
>
> Still two functional changes below besides the macro defintions:
>
> - There's one dirty rate thread that we overlooked before, now we add
> that too and name it as "mig/dirtyrate" following the old rules.
>
> - The old name "mig/src/rp-thr" has "-thr" but it may not be useful if
> it's a thread name anyway, while "rp" can be slightly hard to read.
> Taking this chance to rename it to "mig/src/return", hopefully a better
> name.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
queued.
--
Peter Xu
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-10-15 13:58 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-11 15:36 [PATCH] migration: Put thread names together with macros Peter Xu
2024-10-11 17:29 ` Fabiano Rosas
2024-10-12 7:39 ` Yong Huang
2024-10-14 6:05 ` Zhang, Chen
2024-10-15 13:58 ` Peter Xu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).