diff options
author | Christoph Lameter <clameter@engr.sgi.com> | 2006-01-08 04:00:57 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-08 23:12:43 -0500 |
commit | aea47ff363c15b0be5fc27ed991b1fdee338f0a7 (patch) | |
tree | 0932af1adfcf795fe8793ce24eb338e832d5fa2c /mm/hugetlb.c | |
parent | 45b07ef31d1182d2cfde7711327e3afb268bb1ac (diff) |
[PATCH] mm: make hugepages obey cpusets.
See http://marc.theaimsgroup.com/?l=linux-kernel&m=113167000201265&w=2
http://marc.theaimsgroup.com/?l=linux-mm&m=113167267527312&w=2
Make hugepages obey cpusets.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Acked-by: William Irwin <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r-- | mm/hugetlb.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index f4c43d7980ba..b21d78c941b5 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/nodemask.h> | 12 | #include <linux/nodemask.h> |
13 | #include <linux/pagemap.h> | 13 | #include <linux/pagemap.h> |
14 | #include <linux/mempolicy.h> | 14 | #include <linux/mempolicy.h> |
15 | #include <linux/cpuset.h> | ||
15 | 16 | ||
16 | #include <asm/page.h> | 17 | #include <asm/page.h> |
17 | #include <asm/pgtable.h> | 18 | #include <asm/pgtable.h> |
@@ -48,7 +49,8 @@ static struct page *dequeue_huge_page(struct vm_area_struct *vma, | |||
48 | 49 | ||
49 | for (z = zonelist->zones; *z; z++) { | 50 | for (z = zonelist->zones; *z; z++) { |
50 | nid = (*z)->zone_pgdat->node_id; | 51 | nid = (*z)->zone_pgdat->node_id; |
51 | if (!list_empty(&hugepage_freelists[nid])) | 52 | if (cpuset_zone_allowed(*z, GFP_HIGHUSER) && |
53 | !list_empty(&hugepage_freelists[nid])) | ||
52 | break; | 54 | break; |
53 | } | 55 | } |
54 | 56 | ||