Fabiano Rosas <faro...@suse.de> wrote: > We don't need to check p->quit in the multifd_send_thread() because it > is shadowed by the 'exiting' flag. Ever since that flag was added > p->quit became obsolete as a way to stop the thread. > > Since p->quit is set at multifd_send_terminate_threads() under the > p->mutex lock, the thread will only see it once it loops, so 'exiting' > will always be seen first. > > Note that setting p->quit at multifd_send_terminate_threads() still > makes sense because we need a way to inform multifd_send_pages() that > the channel has stopped. > > Signed-off-by: Fabiano Rosas <faro...@suse.de>
Reviewed-by: Juan Quintela <quint...@redhat.com> But then should we remove the quit altogether? > --- > migration/multifd.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/migration/multifd.c b/migration/multifd.c > index e26f5f246d..92ae61a50f 100644 > --- a/migration/multifd.c > +++ b/migration/multifd.c > @@ -731,9 +731,6 @@ static void *multifd_send_thread(void *opaque) > if (flags & MULTIFD_FLAG_SYNC) { > qemu_sem_post(&p->sem_sync); > } > - } else if (p->quit) { > - qemu_mutex_unlock(&p->mutex); > - break; > } else { > qemu_mutex_unlock(&p->mutex); > /* sometimes there are spurious wakeups */