Message ID | 20191026004520.5515-3-richardw.yang@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | migration/multifd: a new mechanism for send thread sync | expand |
diff --git a/migration/ram.c b/migration/ram.c index 35f147388b..25d477796e 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1107,6 +1107,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(+)