qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH V3 6/7] Migration/colo.c: Add the necessary chec


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] [PATCH V3 6/7] Migration/colo.c: Add the necessary checks for colo_do_failover
Date: Fri, 8 Mar 2019 19:02:10 +0000
User-agent: Mutt/1.11.3 (2019-02-01)

* Zhang, Chen (address@hidden) wrote:
> 
> 
> -----Original Message-----
> From: Dr. David Alan Gilbert [mailto:address@hidden 
> Sent: Saturday, March 9, 2019 1:41 AM
> To: Zhang, Chen <address@hidden>
> Cc: Li Zhijian <address@hidden>; Zhang Chen <address@hidden>; Juan Quintela 
> <address@hidden>; zhanghailiang <address@hidden>; Markus Armbruster 
> <address@hidden>; Eric Blake <address@hidden>; qemu-dev <address@hidden>
> Subject: Re: [PATCH V3 6/7] Migration/colo.c: Add the necessary checks for 
> colo_do_failover
> 
> * Zhang Chen (address@hidden) wrote:
> > From: Zhang Chen <address@hidden>
> > 
> > Signed-off-by: Zhang Chen <address@hidden>
> 
>>  OK, we should make that properly return an error.
>>  (Actually we should make the failover command be one of the new OOB 
>> commands; so that it can work even if the main loop is blocked- that would 
>> make COLO robust properly against network failures)
> 
> Good idea~ which OOB command can be the demo in current Qemu?
>  Maybe I can do this job in the future.

The 'migration-pause' command I think is the only real one so far.
Remember the important thing is the code that runs as part of it must
not take any lock that could be blocked by the main loop or any
part of the replication that could block based on the other host
having died.

Dave

> 
> Thanks
> Zhang Chen
> 
> Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> 
> > ---
> >  migration/colo.c | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/migration/colo.c b/migration/colo.c index 
> > dbe2b88807..d1ae2e6d11 100644
> > --- a/migration/colo.c
> > +++ b/migration/colo.c
> > @@ -197,10 +197,16 @@ void colo_do_failover(MigrationState *s)
> >          vm_stop_force_state(RUN_STATE_COLO);
> >      }
> >  
> > -    if (get_colo_mode() == COLO_MODE_PRIMARY) {
> > +    switch (get_colo_mode()) {
> > +    case COLO_MODE_PRIMARY:
> >          primary_vm_do_failover();
> > -    } else {
> > +        break;
> > +    case COLO_MODE_SECONDARY:
> >          secondary_vm_do_failover();
> > +        break;
> > +    default:
> > +        error_report("colo_do_failover failed because the colo mode"
> > +                     " could not be obtained");
> >      }
> >  }
> >  
> > --
> > 2.17.GIT
> > 
> --
> Dr. David Alan Gilbert / address@hidden / Manchester, UK
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

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