|
|
5544c1 |
From 7fbcbd48d2898935369b443a489ea79d49fe19c4 Mon Sep 17 00:00:00 2001
|
|
Hans de Goede |
c8dfc6 |
From: Yonit Halperin <yhalperi@redhat.com>
|
|
Hans de Goede |
c8dfc6 |
Date: Tue, 21 Aug 2012 11:51:55 +0300
|
|
|
5544c1 |
Subject: [PATCH] spice: notify spice server on vm start/stop
|
|
Hans de Goede |
c8dfc6 |
|
|
Hans de Goede |
c8dfc6 |
Spice server needs to know about the vm state in order to prevent
|
|
Hans de Goede |
c8dfc6 |
attempts to write to devices when they are stopped, mainly during
|
|
Hans de Goede |
c8dfc6 |
the non-live stage of migration.
|
|
Hans de Goede |
c8dfc6 |
Instead, spice will take care of restoring this writes, on the migration
|
|
Hans de Goede |
c8dfc6 |
target side, after migration completes.
|
|
Hans de Goede |
c8dfc6 |
|
|
Hans de Goede |
c8dfc6 |
Signed-off-by: Yonit Halperin <yhalperi@redhat.com>
|
|
Hans de Goede |
c8dfc6 |
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
5544c1 |
(cherry picked from commit f5bb039c6d97ef3e664094eab3c9a4dc1824ed73)
|
|
|
5544c1 |
|
|
|
5544c1 |
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
|
|
Hans de Goede |
c8dfc6 |
---
|
|
Hans de Goede |
c8dfc6 |
ui/spice-core.c | 14 ++++++++++++++
|
|
Hans de Goede |
c8dfc6 |
1 file changed, 14 insertions(+)
|
|
Hans de Goede |
c8dfc6 |
|
|
Hans de Goede |
c8dfc6 |
diff --git a/ui/spice-core.c b/ui/spice-core.c
|
|
Hans de Goede |
c8dfc6 |
index bb4f585..a515c94 100644
|
|
Hans de Goede |
c8dfc6 |
--- a/ui/spice-core.c
|
|
Hans de Goede |
c8dfc6 |
+++ b/ui/spice-core.c
|
|
Hans de Goede |
c8dfc6 |
@@ -546,6 +546,18 @@ static int add_channel(const char *name, const char *value, void *opaque)
|
|
Hans de Goede |
c8dfc6 |
return 0;
|
|
Hans de Goede |
c8dfc6 |
}
|
|
Hans de Goede |
c8dfc6 |
|
|
Hans de Goede |
c8dfc6 |
+static void vm_change_state_handler(void *opaque, int running,
|
|
Hans de Goede |
c8dfc6 |
+ RunState state)
|
|
Hans de Goede |
c8dfc6 |
+{
|
|
Hans de Goede |
c8dfc6 |
+#if SPICE_SERVER_VERSION >= 0x000b02 /* 0.11.2 */
|
|
Hans de Goede |
c8dfc6 |
+ if (running) {
|
|
Hans de Goede |
c8dfc6 |
+ spice_server_vm_start(spice_server);
|
|
Hans de Goede |
c8dfc6 |
+ } else {
|
|
Hans de Goede |
c8dfc6 |
+ spice_server_vm_stop(spice_server);
|
|
Hans de Goede |
c8dfc6 |
+ }
|
|
Hans de Goede |
c8dfc6 |
+#endif
|
|
Hans de Goede |
c8dfc6 |
+}
|
|
Hans de Goede |
c8dfc6 |
+
|
|
Hans de Goede |
c8dfc6 |
void qemu_spice_init(void)
|
|
Hans de Goede |
c8dfc6 |
{
|
|
Hans de Goede |
c8dfc6 |
QemuOpts *opts = QTAILQ_FIRST(&qemu_spice_opts.head);
|
|
Hans de Goede |
c8dfc6 |
@@ -719,6 +731,8 @@ void qemu_spice_init(void)
|
|
Hans de Goede |
c8dfc6 |
qemu_spice_input_init();
|
|
Hans de Goede |
c8dfc6 |
qemu_spice_audio_init();
|
|
Hans de Goede |
c8dfc6 |
|
|
Hans de Goede |
c8dfc6 |
+ qemu_add_vm_change_state_handler(vm_change_state_handler, &spice_server);
|
|
Hans de Goede |
c8dfc6 |
+
|
|
Hans de Goede |
c8dfc6 |
g_free(x509_key_file);
|
|
Hans de Goede |
c8dfc6 |
g_free(x509_cert_file);
|
|
Hans de Goede |
c8dfc6 |
g_free(x509_cacert_file);
|
|
Hans de Goede |
c8dfc6 |
--
|
|
|
5544c1 |
1.7.12.1
|
|
Hans de Goede |
c8dfc6 |
|