[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