[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/5] migration/multifd: Fix channel creation vs. cleanup races
From: |
Fabiano Rosas |
Subject: |
[PATCH 0/5] migration/multifd: Fix channel creation vs. cleanup races |
Date: |
Fri, 2 Feb 2024 16:11:23 -0300 |
Hi,
This contains 2 patches from my previous series addressing the
p->running misuse and the TLS thread leak and 3 new patches to fix the
cleanup-while-creating-threads race.
For the p->running I'm keeping the idea from the other series to
remove p->running and use a more narrow p->thread_created flag. This
flag is used only inform whether the thread has been created so we can
join it.
For the cleanup race I have moved some code around and added a
semaphore to make multifd_save_setup() only return once all channel
creation tasks have started.
The idea is that after multifd_save_setup() returns, no new creations
are in flight and the p->thread_created flags will never change again,
so they're enough to cause the cleanup code to wait for the threads to
join.
CI run: https://gitlab.com/farosas/qemu/-/pipelines/1162798843
@Peter: I can rebase this on top of your series once we decide about
it.
Fabiano Rosas (5):
migration/multifd: Join the TLS thread
migration/multifd: Remove p->running
migration/multifd: Move multifd_save_setup error handling in to the
function
migration/multifd: Move multifd_save_setup into migration thread
migration/multifd: Add a synchronization point for channel creation
migration/migration.c | 14 ++---
migration/multifd.c | 129 ++++++++++++++++++++++++------------------
migration/multifd.h | 11 ++--
3 files changed, 83 insertions(+), 71 deletions(-)
--
2.35.3
- [PATCH 0/5] migration/multifd: Fix channel creation vs. cleanup races,
Fabiano Rosas <=
- [PATCH 1/5] migration/multifd: Join the TLS thread, Fabiano Rosas, 2024/02/02
- [PATCH 2/5] migration/multifd: Remove p->running, Fabiano Rosas, 2024/02/02
- [PATCH 4/5] migration/multifd: Move multifd_save_setup into migration thread, Fabiano Rosas, 2024/02/02
- [PATCH 3/5] migration/multifd: Move multifd_save_setup error handling in to the function, Fabiano Rosas, 2024/02/02
- [PATCH 5/5] migration/multifd: Add a synchronization point for channel creation, Fabiano Rosas, 2024/02/02