qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/1] migration: Terminate multifd threads on yank


From: Leonardo Bras Soares Passos
Subject: Re: [PATCH 1/1] migration: Terminate multifd threads on yank
Date: Tue, 3 Aug 2021 04:02:15 -0300

Hello Dave,

> > diff --git a/migration/multifd.c b/migration/multifd.c
> > index 377da78f5b..744a180dfe 100644
> > --- a/migration/multifd.c
> > +++ b/migration/multifd.c
> > @@ -1040,6 +1040,17 @@ void multifd_recv_sync_main(void)
> >      trace_multifd_recv_sync_main(multifd_recv_state->packet_num);
> >  }
> >
> > +void multifd_shutdown(void)
> > +{
> > +    if (!migrate_use_multifd()) {
> > +        return;
> > +    }
> > +
> > +    if (multifd_send_state) {
> > +        multifd_send_terminate_threads(NULL);
> > +    }
>
> That calls :
>     for (i = 0; i < migrate_multifd_channels(); i++) {
>         MultiFDSendParams *p = &multifd_send_state->params[i];
>
>         qemu_mutex_lock(&p->mutex);
>         p->quit = true;
>         qemu_sem_post(&p->sem);
>         qemu_mutex_unlock(&p->mutex);
>     }
>
> so why doesn't this also get stuck in the same mutex you're trying to
> fix?

You are right, I got confused over the locks.
I need to get a better look at the code, and truly understand why this
patch fixes (?) the issue.

>
> Does the qio_channel_shutdown actually cause a shutdown on all fd's
> for the multifd?

As far as I tested, it does shutdown a single fd, but whenever this fd
fails in it's first sendmsg it causes migration to fail and all the
other fds get shutdown as well.

>
> (I've just seen the multifd/cancel test fail stuck in multifd_send_sync_main
> waiting on one of the locks).
>
> Dave
>

> >
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>

I will do a little more reading / debugging in this code.
Thanks Dave!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]