|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [RFC][PATCH 13/13] Kemari: use shared region with to flip lo
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
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [RFC][PATCH 01/13] Kemari: add ECS_TAP state to event channel, (continued)
- [Xen-devel] [RFC][PATCH 01/13] Kemari: add ECS_TAP state to event channel, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 02/13] Kemari: core kemari code, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 03/13] Kemari: change parameter type of xc_{set, get}_hvm_param, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 04/13] Kemari: Kemari controller interface in libxc, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 05/13] Kemari: Kemari sender, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 06/13] Kemari: Kemari receiver, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 07/13] Kemari: add Kemari support to python, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 08/13] Kemari: add dev state "Attached" to python, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 09/13] Kemari: add XenbusStateAttached to xenbus, Yoshiaki Tamura
- [Xen-devel] [RFC][PATCH 13/13] Kemari: use shared region with to flip logdirty_bitmap,
Yoshiaki Tamura <=
|
|
|
|
|