mvadkert / rpms / qemu

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