dcavalca / rpms / qemu

Forked from rpms/qemu a year ago
Clone

Blame 0101-spice-notify-spice-server-on-vm-start-stop.patch

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