[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC][PATCH 13/13] Kemari: use shared region with to flip logdirty_bitmap
This is an updated version of the following patch. No major changes. http://lists.xensource.com/archives/html/xen-devel/2009-03/msg00382.html Signed-off-by: Yoshisato Yanagisawa <yanagisawa.yoshisato@xxxxxxxxxxxxx> Signed-off-by: Yoshi Tamura <tamura.yoshiaki@xxxxxxxxxxxxx> --- xenstore.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/xenstore.c b/xenstore.c index 928e950..4333c79 100644 --- a/xenstore.c +++ b/xenstore.c @@ -639,6 +639,8 @@ void xenstore_process_logdirty_event(void) static char *active_path = NULL; static char *next_active_path = NULL; static char *seg = NULL; + static char *kemari_qemu_info = NULL; + static char *qemu_file = NULL; unsigned int len; int i; @@ -705,6 +707,8 @@ void xenstore_process_logdirty_event(void) seg = NULL; return; } + kemari_qemu_info = seg + logdirty_bitmap_size * 2; + asprintf(&qemu_file, "/dev/shm/qemu-save.%d", domid); /* use tmpfs */ #endif /* Remember the paths for the next-active and active entries */ @@ -722,8 +726,32 @@ void xenstore_process_logdirty_event(void) } } +#ifndef CONFIG_STUBDOM + if (kemari_enabled) { + while (kemari_qemu_info[1]) + xen_rmb(); + + /* Switch buffers */ + i = kemari_qemu_info[0]; + if (i != 0 && i != 1) { + fprintf(logfile, "Log-dirty: bad next-active entry: %s\n", act); + exit(1); + } + logdirty_bitmap = (unsigned long *)(seg + i * logdirty_bitmap_size); + kemari_qemu_info[1] = 1; + xen_wmb(); + + /* Save QEMU status */ + while (kemari_qemu_info[2]) + xen_rmb(); + do_savevm(qemu_file); + kemari_qemu_info[2] = 1; + xen_wmb(); + return; + } +#endif /* !CONFIG_STUBDOM */ fprintf(logfile, "Triggered log-dirty buffer switch\n"); - + /* Read the required active buffer from the store */ act = xs_read(xsh, XBT_NULL, next_active_path, &len); if (!act) { _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |