Message ID | 20190606083501.2087-3-richardw.yang@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | multifd: a new mechanism for send thread sync | expand |
diff --git a/migration/ram.c b/migration/ram.c index a4e7587648..f9e53ac413 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1093,6 +1093,8 @@ static void *multifd_send_thread(void *opaque) } /* initial packet */ p->num_packets = 1; + /* let main thread know we are ready */ + qemu_sem_post(&multifd_send_state->channels_ready); while (true) { qemu_sem_wait(&p->sem);
multifd_send_state->channels_ready is initialized to 0. It is proper to let main thread know we are ready when thread start running. Current implementation works since ram_save_setup() calls multifd_send_sync_main() which wake up send thread and posts channels_ready. This behavior will introduce some unpredictable situation and disturb the semaphore value. This is a preparation patch to use another mechanism to do send thread synchronization to avoid post channels_ready in this case. So this patch posts channels_ready when send threads start running. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> --- migration/ram.c | 2 ++ 1 file changed, 2 insertions(+)