|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [LINUX] When ballooning out (returning me
# HG changeset patch
# User shand@xxxxxxxxxxxxxxxxxxxxxxxx
# Node ID 8242c0c24db75c7de381b69637b7b1be3f4780f1
# Parent c157418212d820f03552f8dff87b2859fa2257e1
[LINUX] When ballooning out (returning memory to xen), don't try too hard
to allocate pages - this reduces the chance of the oom killer being invoked.
Signed-off-by: Steven Hand <steven@xxxxxxxxxxxxx>
---
linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletion(-)
diff -r c157418212d8 -r 8242c0c24db7
linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c
--- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Thu Jun 29
14:49:41 2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c Thu Jun 29
15:02:38 2006 +0100
@@ -99,6 +99,11 @@ static DECLARE_WORK(balloon_worker, ball
static DECLARE_WORK(balloon_worker, balloon_process, NULL);
static struct timer_list balloon_timer;
+/* When ballooning out (allocating memory to return to Xen) we don't really
+ want the kernel to try too hard since that can trigger the oom killer. */
+#define GFP_BALLOON \
+ (GFP_HIGHUSER | __GFP_NOWARN | __GFP_NORETRY | __GFP_NOMEMALLOC)
+
#define PAGE_TO_LIST(p) (&(p)->lru)
#define LIST_TO_PAGE(l) list_entry((l), struct page, lru)
#define UNLIST_PAGE(p) \
@@ -269,7 +274,7 @@ static int decrease_reservation(unsigned
nr_pages = ARRAY_SIZE(frame_list);
for (i = 0; i < nr_pages; i++) {
- if ((page = alloc_page(GFP_HIGHUSER)) == NULL) {
+ if ((page = alloc_page(GFP_BALLOON)) == NULL) {
nr_pages = i;
need_sleep = 1;
break;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [LINUX] When ballooning out (returning memory to xen), don't try too hard,
Xen patchbot-unstable <=
|
|
|
|
|