summaryrefslogtreecommitdiff
blob: 4e15c1571e2e91ff65e66b9ef8144e79013b0338 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# HG changeset 79 patch
# User kfraser@localhost.localdomain
# Date 1183324052 -3600
# Node ID 57ab8dd47580c2f726556fe1c46b5401f2bddb1e
# Parent  0be610b725fae4cd6de8f0b111660a186f93b86d
Subject: Stop low memory from appearing -ve in /proc/meminfo when ballooned.
Signed-off-by: Mark Williamson <mark.williamson@cl.cam.ac.uk>

---
 drivers/xen/balloon/balloon.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/xen/balloon/balloon.c	2007-08-27 14:01:25.000000000 -0400
+++ b/drivers/xen/balloon/balloon.c	2007-08-27 14:02:03.000000000 -0400
@@ -83,6 +83,7 @@ static unsigned long frame_list[PAGE_SIZ
 
 /* VM /proc information for memory */
 extern unsigned long totalram_pages;
+extern unsigned long totalhigh_pages;
 
 /* List of ballooned pages, threaded through the mem_map array. */
 static LIST_HEAD(ballooned_pages);
@@ -118,6 +119,7 @@ static void balloon_append(struct page *
 	if (PageHighMem(page)) {
 		list_add_tail(PAGE_TO_LIST(page), &ballooned_pages);
 		bs.balloon_high++;
+		totalhigh_pages--;
 	} else {
 		list_add(PAGE_TO_LIST(page), &ballooned_pages);
 		bs.balloon_low++;
@@ -135,8 +137,10 @@ static struct page *balloon_retrieve(voi
 	page = LIST_TO_PAGE(ballooned_pages.next);
 	UNLIST_PAGE(page);
 
-	if (PageHighMem(page))
+	if (PageHighMem(page)) {
 		bs.balloon_high--;
+		totalhigh_pages++;
+	}
 	else
 		bs.balloon_low--;