From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:44557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDKvZ-0004Z5-D0 for qemu-devel@nongnu.org; Mon, 10 Oct 2011 14:50:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RDKvY-00050G-Ae for qemu-devel@nongnu.org; Mon, 10 Oct 2011 14:50:17 -0400 Received: from mx1.redhat.com ([209.132.183.28]:26945) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDKvX-000508-SZ for qemu-devel@nongnu.org; Mon, 10 Oct 2011 14:50:16 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p9AIoFr6026412 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 10 Oct 2011 14:50:15 -0400 Date: Mon, 10 Oct 2011 15:50:13 -0300 From: Luiz Capitulino Message-ID: <20111010155013.0c1e40c4@doriath> In-Reply-To: <1317734140-18478-1-git-send-email-pbonzini@redhat.com> References: <1317733839-18143-1-git-send-email-pbonzini@redhat.com> <1317734140-18478-1-git-send-email-pbonzini@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] runstate: add more valid transitions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org On Tue, 4 Oct 2011 15:15:40 +0200 Paolo Bonzini wrote: > This patch adds more valid transitions to the table, and avoids > that the VM remains stuck in RSTATE_SAVEVM state when savevm is > done on a paused virtual machine. > > Signed-off-by: Paolo Bonzini Looks good, but it needs to be rebased against latest master. > --- > savevm.c | 9 +++++++-- > vl.c | 5 +++++ > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/savevm.c b/savevm.c > index 46f2447..ff37968 100644 > --- a/savevm.c > +++ b/savevm.c > @@ -1626,8 +1626,13 @@ out: > if (qemu_file_has_error(f)) > ret = -EIO; > > - if (!ret && saved_vm_running) > - vm_start(); > + if (!ret) { > + if (saved_vm_running) { > + vm_start(); > + } else { > + runstate_set(RSTATE_PAUSED); > + } > + } > > return ret; > } > diff --git a/vl.c b/vl.c > index bd4a5ce..165712e 100644 > --- a/vl.c > +++ b/vl.c > @@ -346,8 +346,12 @@ static const RunStateTransition runstate_transitions_def[] = { > { RSTATE_IO_ERROR, RSTATE_RUNNING }, > > { RSTATE_PAUSED, RSTATE_RUNNING }, > + { RSTATE_PAUSED, RSTATE_PRE_MIGRATE }, > + { RSTATE_PAUSED, RSTATE_SAVEVM }, > > { RSTATE_POST_MIGRATE, RSTATE_RUNNING }, > + { RSTATE_POST_MIGRATE, RSTATE_PRE_MIGRATE }, > + { RSTATE_POST_MIGRATE, RSTATE_SAVEVM }, > > { RSTATE_PRE_LAUNCH, RSTATE_RUNNING }, > { RSTATE_PRE_LAUNCH, RSTATE_POST_MIGRATE }, > @@ -368,6 +372,7 @@ static const RunStateTransition runstate_transitions_def[] = { > { RSTATE_RUNNING, RSTATE_WATCHDOG }, > > { RSTATE_SAVEVM, RSTATE_RUNNING }, > + { RSTATE_SAVEVM, RSTATE_PAUSED }, > > { RSTATE_SHUTDOWN, RSTATE_PAUSED }, >