References: <49B86208.2020205@xxxxxxxxxxxxx>
In-Reply-To: <49B86208.2020205@xxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
This is an updated version of the following patch. Followed the
changes in saving qemu state code.
http://lists.xensource.com/archives/html/xen-devel/2009-03/msg00381.html
Signed-off-by: Yoshisato Yanagisawa <yanagisawa.yoshisato@xxxxxxxxxxxxx>
Signed-off-by: Yoshi Tamura <tamura.yoshiaki@xxxxxxxxxxxxx>
---
vl.c | 24 ++++++++++++++++++++++++
xen-config-host.h | 1 +
2 files changed, 25 insertions(+)
diff --git a/vl.c b/vl.c
index 8539f6d..58875d9 100644
--- a/vl.c
+++ b/vl.c
@@ -274,6 +274,8 @@ static int icount_time_shift;
static int64_t qemu_icount_bias;
static QEMUTimer *icount_rt_timer;
static QEMUTimer *icount_vm_timer;
+/* Kemari */
+volatile int kemari_enabled = 0;
uint8_t qemu_uuid[16];
@@ -6961,6 +6963,8 @@ int qemu_savevm_state_complete(QEMUFile *f)
for(se = first_se; se != NULL; se = se->next) {
int len;
+ if (kemari_enabled && strstr(se->idstr, "vga"))
+ continue;
if (se->save_state == NULL)
continue;
@@ -9005,6 +9009,25 @@ static void termsig_setup(void)
sigaction(SIGTERM, &act, NULL);
}
+void xenstore_process_logdirty_event(void);
+static void kemari_handler(int dummy)
+{
+ kemari_enabled = 1; /* QEMU will run in kemari mode */
+ xenstore_process_logdirty_event();
+}
+
+static void kemari_setup(void)
+{
+ struct sigaction act;
+
+ memset(&act, 0, sizeof(act));
+#ifdef CONFIG_DM
+ act.sa_handler = kemari_handler;
+#else /* !CONFIG_DM */
+ act.sa_handler = SIG_DFL;
+#endif /* CONFIG_DM */
+ sigaction(SIGUSR1, &act, NULL);
+}
#endif
int main(int argc, char **argv)
@@ -10045,6 +10068,7 @@ int main(int argc, char **argv)
#ifndef _WIN32
/* must be after terminal init, SDL library changes signal handlers */
termsig_setup();
+ kemari_setup();
#endif
/* Maintain compatibility with multiple stdio monitors */
diff --git a/xen-config-host.h b/xen-config-host.h
index 3d53364..8c7fa28 100644
--- a/xen-config-host.h
+++ b/xen-config-host.h
@@ -41,3 +41,4 @@ void xenstore_store_serial_port_info(int i, struct
CharDriverState *chr,
extern unsigned long *logdirty_bitmap;
extern unsigned long logdirty_bitmap_size;
+extern volatile int kemari_enabled;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|