From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33293) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFKd6-0000Jg-Re for qemu-devel@nongnu.org; Wed, 15 Jul 2015 07:13:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZFKd3-0007IN-81 for qemu-devel@nongnu.org; Wed, 15 Jul 2015 07:13:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34429) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFKd3-0007IB-0N for qemu-devel@nongnu.org; Wed, 15 Jul 2015 07:13:33 -0400 From: Juan Quintela In-Reply-To: <55A63C78.9020607@cn.fujitsu.com> (Wen Congyang's message of "Wed, 15 Jul 2015 18:56:56 +0800") References: <1436274549-28826-1-git-send-email-quintela@redhat.com> <1436274549-28826-15-git-send-email-quintela@redhat.com> <559CF016.4040101@huawei.com> <87io9uoqna.fsf@neno.neno> <55A63C78.9020607@cn.fujitsu.com> Date: Wed, 15 Jul 2015 13:13:31 +0200 Message-ID: <87a8uxbrms.fsf@neno.neno> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PULL 14/28] runstate: migration allows more transitions now Reply-To: quintela@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wen Congyang Cc: amit.shah@redhat.com, peter.huangpeng@huawei.com, zhanghailiang , qemu-devel@nongnu.org Wen Congyang wrote: > On 07/08/2015 07:06 PM, Juan Quintela wrote: >> zhanghailiang wrote: >>> Hi, >>> >>> If testing migration with '-S' for qemu command line, (migrate >>> directly without executing 'cont' command), >>> qemu process in the destination will abort with the follow message: >>> >>> ERROR: invalid runstate transition: 'inmigrate' -> 'prelaunch' >>> Aborted >>> >>> After the follow modification, it will be OK. Is this need to be fix ? >> >> but this is a "werid" case. basically it means that >> >> - we start on host A >> - we start on host B (with -S) >> - we migrate from A to B >> - now we migrate from B to C without running at all on B >> >> Or I am missing something? > > What about this bug? Should we fix it in qemu-2.4? Is there any other scenary where it makes sense? My understanding from previous description is that we shouldn't allow migration in that state. I can be convinced of the contrary if you told me of a valid scenary. Please, more people chime in, one way or another. It is not that I have a strong opposition to it, just that I can't see the need. Thanks, Juan. > > Thanks > Wen Congyang > >> >> Later, Juan. >> >> >>> >>> --- a/vl.c >>> +++ b/vl.c >>> @@ -583,6 +583,7 @@ static const RunStateTransition >>> runstate_transitions_def[] = { >>> { RUN_STATE_INMIGRATE, RUN_STATE_WATCHDOG }, >>> { RUN_STATE_INMIGRATE, RUN_STATE_GUEST_PANICKED }, >>> + { RUN_STATE_INMIGRATE, RUN_STATE_PRELAUNCH }, >>> >>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_PAUSED }, >>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_FINISH_MIGRATE }, >>> >>> >>> Thanks, >>> zhanghailiang >>> >>> On 2015/7/7 21:08, Juan Quintela wrote: >>>> Next commit would allow to move from incoming migration to error happening on source. >>>> >>>> Should we add more states to this transition? Luiz? >>>> >>>> Signed-off-by: Juan Quintela >>>> Reviewed-by: Dr. David Alan Gilbert >>>> --- >>>> vl.c | 8 +++++++- >>>> 1 file changed, 7 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/vl.c b/vl.c >>>> index fec7e93..19a8737 100644 >>>> --- a/vl.c >>>> +++ b/vl.c >>>> @@ -573,8 +573,14 @@ static const RunStateTransition runstate_transitions_def[] = { >>>> { RUN_STATE_DEBUG, RUN_STATE_RUNNING }, >>>> { RUN_STATE_DEBUG, RUN_STATE_FINISH_MIGRATE }, >>>> >>>> - { RUN_STATE_INMIGRATE, RUN_STATE_RUNNING }, >>>> + { RUN_STATE_INMIGRATE, RUN_STATE_INTERNAL_ERROR }, >>>> + { RUN_STATE_INMIGRATE, RUN_STATE_IO_ERROR }, >>>> { RUN_STATE_INMIGRATE, RUN_STATE_PAUSED }, >>>> + { RUN_STATE_INMIGRATE, RUN_STATE_RUNNING }, >>>> + { RUN_STATE_INMIGRATE, RUN_STATE_SHUTDOWN }, >>>> + { RUN_STATE_INMIGRATE, RUN_STATE_SUSPENDED }, >>>> + { RUN_STATE_INMIGRATE, RUN_STATE_WATCHDOG }, >>>> + { RUN_STATE_INMIGRATE, RUN_STATE_GUEST_PANICKED }, >>>> >>>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_PAUSED }, >>>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_FINISH_MIGRATE }, >>>> >> >> . >>