Add support for a xenstore dm command to flush qemu's buffer cache.
qemu will just keep mapping pages and not release them, which causes problems
for the memory pager (since the page is mapped, it won't get paged out). When
the pager has trouble finding a page to page out, it asks qemu to flush its
buffer, which releases all the page mappings. This makes it possible to find
pages to swap out agian.
Already-Signed-off-by: Patrick Colp <Patrick.Colp@xxxxxxxxxx>
Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
---
tools/ioemu-remote/xenstore.c | 3 +++
1 file changed, 3 insertions(+)
--- xen-4.0.1-testing.orig/tools/ioemu-remote/xenstore.c
+++ xen-4.0.1-testing/tools/ioemu-remote/xenstore.c
@@ -1021,6 +1021,9 @@ static void xenstore_process_dm_command_
do_pci_add(par);
free(par);
#endif
+ } else if (!strncmp(command, "flush-cache", len)) {
+ fprintf(logfile, "dm-command: flush caches\n");
+ qemu_invalidate_map_cache();
} else {
fprintf(logfile, "dm-command: unknown command\"%*s\"\n", len, command);
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|