qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v2] runstate: add more valid transitions


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH v2] runstate: add more valid transitions
Date: Tue, 11 Oct 2011 09:22:42 +0200

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 <address@hidden>
---
 savevm.c |    9 +++++++--
 vl.c     |    5 +++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/savevm.c b/savevm.c
index bf4d0e7..ac45db8 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 dbf7778..6614aac 100644
--- a/vl.c
+++ b/vl.c
@@ -343,8 +343,12 @@ static const RunStateTransition runstate_transitions_def[] 
= {
     { RUN_STATE_IO_ERROR, RUN_STATE_RUNNING },
 
     { RUN_STATE_PAUSED, RUN_STATE_RUNNING },
+    { RUN_STATE_PAUSED, RUN_STATE_FINISH_MIGRATE },
+    { RUN_STATE_PAUSED, RUN_STATE_SAVE_VM },
 
     { RUN_STATE_POSTMIGRATE, RUN_STATE_RUNNING },
+    { RUN_STATE_POSTMIGRATE, RUN_STATE_FINISH_MIGRATE },
+    { RUN_STATE_POSTMIGRATE, RUN_STATE_SAVE_VM },
 
     { RUN_STATE_PRELAUNCH, RUN_STATE_RUNNING },
     { RUN_STATE_PRELAUNCH, RUN_STATE_INMIGRATE },
@@ -366,6 +370,7 @@ static const RunStateTransition runstate_transitions_def[] 
= {
     { RUN_STATE_RUNNING, RUN_STATE_WATCHDOG },
 
     { RUN_STATE_SAVE_VM, RUN_STATE_RUNNING },
+    { RUN_STATE_SAVE_VM, RUN_STATE_PAUSED },
 
     { RUN_STATE_SHUTDOWN, RUN_STATE_PAUSED },
 
-- 
1.7.6




reply via email to

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