qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC 20/29] migration: wakeup dst ram-load-thread for r


From: Peter Xu
Subject: Re: [Qemu-devel] [RFC 20/29] migration: wakeup dst ram-load-thread for recover
Date: Fri, 4 Aug 2017 13:46:42 +0800
User-agent: Mutt/1.5.24 (2015-08-30)

On Thu, Aug 03, 2017 at 10:28:20AM +0100, Dr. David Alan Gilbert wrote:
> * Peter Xu (address@hidden) wrote:
> > On the destination side, we cannot wake up all the threads when we got
> > reconnected. The first thing to do is to wake up the main load thread,
> > so that we can continue to receive valid messages from source again and
> > reply when needed.
> > 
> > At this point, we switch the destination VM state from postcopy-paused
> > back to postcopy-recover.
> > 
> > Now we are finally ready to do the resume logic.
> > 
> > Signed-off-by: Peter Xu <address@hidden>
> > ---
> >  migration/migration.c | 34 +++++++++++++++++++++++++++++++---
> >  1 file changed, 31 insertions(+), 3 deletions(-)
> > 
> > diff --git a/migration/migration.c b/migration/migration.c
> > index 3aabe11..e498fa4 100644
> > --- a/migration/migration.c
> > +++ b/migration/migration.c
> > @@ -389,10 +389,38 @@ static void process_incoming_migration_co(void 
> > *opaque)
> >  
> >  void migration_fd_process_incoming(QEMUFile *f)
> >  {
> > -    Coroutine *co = qemu_coroutine_create(process_incoming_migration_co, 
> > f);
> > +    MigrationIncomingState *mis = migration_incoming_get_current();
> > +    Coroutine *co;
> > +
> > +    mis->from_src_file = f;
> > +
> > +    if (mis->state == MIGRATION_STATUS_POSTCOPY_PAUSED) {
> > +        /* Resumed migration to postcopy state */

(I guess here it should be "Resumed from a paused postcopy migration")

> > +
> > +        /* Postcopy has standalone thread to do vm load */
> > +        qemu_file_set_blocking(f, true);
> > +
> > +        /* Re-configure the return path */
> > +        mis->to_src_file = qemu_file_get_return_path(f);
> >  
> > -    qemu_file_set_blocking(f, false);
> > -    qemu_coroutine_enter(co);
> > +        /* Reset the migration status to postcopy-active */
> > +        migrate_set_state(&mis->state, MIGRATION_STATUS_POSTCOPY_PAUSED,
> > +                          MIGRATION_STATUS_POSTCOPY_RECOVER);
> 
> The comment doesn't match the code.

Indeed. I'll remove the comment since the code explains.

> 
> Other than that;
> 
> 
> Reviewed-by: Dr. David Alan Gilbert <address@hidden>

Thanks,

-- 
Peter Xu



reply via email to

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