[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 3/8] migration/multifd: Join all multifd threads in order to a
From: |
Juan Quintela |
Subject: |
[PATCH v5 3/8] migration/multifd: Join all multifd threads in order to avoid leaks |
Date: |
Mon, 13 Feb 2023 09:57:41 +0100 |
From: Leonardo Bras <leobras@redhat.com>
Current approach will only join threads that are still running.
For the threads not joined, resources or private memory are always kept in
the process space and never reclaimed before process end, and this risks
serious memory leaks.
This should usually not represent a big problem, since multifd migration
is usually just ran at most a few times, and after it succeeds there is
not much to be done before exiting the process.
Yet still, it should not hurt performance to join all of them.
Fixes: b5eea99ec2 ("migration: Add yank feature")
Reported-by: Li Xiaohui <xiaohli@redhat.com>
Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
migration/multifd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index 3dd569d0c9..840d5814e4 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -1030,8 +1030,9 @@ void multifd_load_cleanup(void)
* however try to wakeup it without harm in cleanup phase.
*/
qemu_sem_post(&p->sem_sync);
- qemu_thread_join(&p->thread);
}
+
+ qemu_thread_join(&p->thread);
}
for (i = 0; i < migrate_multifd_channels(); i++) {
MultiFDRecvParams *p = &multifd_recv_state->params[i];
--
2.39.1
- [PATCH v5 0/8] Eliminate multifd flush, Juan Quintela, 2023/02/13
- [PATCH v5 1/8] migration/multifd: Change multifd_load_cleanup() signature and usage, Juan Quintela, 2023/02/13
- [PATCH v5 2/8] migration/multifd: Remove unnecessary assignment on multifd_load_cleanup(), Juan Quintela, 2023/02/13
- [PATCH v5 4/8] migration/multifd: Move load_cleanup inside incoming_state_destroy, Juan Quintela, 2023/02/13
- [PATCH v5 3/8] migration/multifd: Join all multifd threads in order to avoid leaks,
Juan Quintela <=
- [PATCH v5 5/8] ram: Document migration ram flags, Juan Quintela, 2023/02/13
- [PATCH v5 6/8] multifd: Create property multifd-sync-after-each-section, Juan Quintela, 2023/02/13
- Re: [PATCH v5 0/8] Eliminate multifd flush, Juan Quintela, 2023/02/13