qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Amit Shah <amit.shah@redhat.com>
To: qemu list <qemu-devel@nongnu.org>
Cc: Anthony PERARD <anthony.perard@gmail.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	Amit Shah <amit.shah@redhat.com>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [Qemu-devel] [PULL for-2.4 2/3] migration: Fix global state with Xen.
Date: Mon,  3 Aug 2015 18:14:59 +0530	[thread overview]
Message-ID: <9c7292fe59f31cc3296c15a5b693867fbabe9fad.1438605827.git.amit.shah@redhat.com> (raw)
In-Reply-To: <cover.1438605827.git.amit.shah@redhat.com>
In-Reply-To: <cover.1438605827.git.amit.shah@redhat.com>

From: Anthony PERARD <anthony.perard@gmail.com>

When doing migration via the QMP command xen_save_devices_state, the
current runstate is not store into the global state section. Also the
current runstate is not the one we want on the receiver side.

During migration, the Xen toolstack paused QEMU before save the devices
state. Also, the toolstack expect QEMU to autostart when the migration is
finished.
So this patch store "running" as it's current runstate.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Message-Id: <1438098885-4339-3-git-send-email-anthony.perard@citrix.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
---
 include/migration/migration.h | 1 +
 migration/migration.c         | 7 +++++++
 migration/savevm.c            | 1 +
 3 files changed, 9 insertions(+)

diff --git a/include/migration/migration.h b/include/migration/migration.h
index a2f8ed0..8334621 100644
--- a/include/migration/migration.h
+++ b/include/migration/migration.h
@@ -203,4 +203,5 @@ void register_global_state(void);
 void global_state_set_optional(void);
 void savevm_skip_configuration(void);
 int global_state_store(void);
+void global_state_store_running(void);
 #endif
diff --git a/migration/migration.c b/migration/migration.c
index fd4f99b..175a397 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -122,6 +122,13 @@ int global_state_store(void)
     return 0;
 }
 
+void global_state_store_running(void)
+{
+    const char *state = RunState_lookup[RUN_STATE_RUNNING];
+    memcpy((char *)global_state.runstate,
+           state, sizeof(global_state.runstate));
+}
+
 static bool global_state_received(void)
 {
     return global_state.received;
diff --git a/migration/savevm.c b/migration/savevm.c
index 81dbe58..6071215 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1394,6 +1394,7 @@ void qmp_xen_save_devices_state(const char *filename, Error **errp)
 
     saved_vm_running = runstate_is_running();
     vm_stop(RUN_STATE_SAVE_VM);
+    global_state_store_running();
 
     f = qemu_fopen(filename, "wb");
     if (!f) {
-- 
2.4.3

  parent reply	other threads:[~2015-08-03 12:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-03 12:44 [Qemu-devel] [PULL for-2.4 0/3] Regression fix for migration on Xen Amit Shah
2015-08-03 12:44 ` [Qemu-devel] [PULL for-2.4 1/3] migration: Fix regretion for xenfv machine Amit Shah
2015-08-03 12:44 ` Amit Shah [this message]
2015-08-03 12:50   ` [Qemu-devel] [PULL for-2.4 2/3] migration: Fix global state with Xen Dr. David Alan Gilbert
2015-08-03 12:45 ` [Qemu-devel] [PULL for-2.4 3/3] migration: Add configuration section to vmstate with xen Amit Shah
2015-08-03 13:09 ` [Qemu-devel] [PULL for-2.4 0/3] Regression fix for migration on Xen Anthony PERARD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9c7292fe59f31cc3296c15a5b693867fbabe9fad.1438605827.git.amit.shah@redhat.com \
    --to=amit.shah@redhat.com \
    --cc=anthony.perard@citrix.com \
    --cc=anthony.perard@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).