diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-02-06 16:47:47 -0500 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-02-06 16:47:47 -0500 |
commit | a1bd99a1cc75a29ba3098ceef6a9ec76d8587d3d (patch) | |
tree | 42a3cb9d6ac16c6a3929322c9104df103f0d1fac | |
parent | 31500bd444f68f43f7b3fffa2e4288c9bd9775fd (diff) | |
download | rt-patches-a1bd99a1cc75a29ba3098ceef6a9ec76d8587d3d.tar.gz |
refresh page_alloc-augment-percpu-pages-support-for-newer-ke.patch
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | page_alloc-augment-percpu-pages-support-for-newer-ke.patch | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/page_alloc-augment-percpu-pages-support-for-newer-ke.patch b/page_alloc-augment-percpu-pages-support-for-newer-ke.patch index 7d8b881..fcf4696 100644 --- a/page_alloc-augment-percpu-pages-support-for-newer-ke.patch +++ b/page_alloc-augment-percpu-pages-support-for-newer-ke.patch @@ -1,4 +1,4 @@ -From 2b494fe0b8811f60e2ac80901235425b51237ac1 Mon Sep 17 00:00:00 2001 +From 99a47f1bc0c41e73a7bfdb16f5b627353af0dacc Mon Sep 17 00:00:00 2001 From: Paul Gortmaker <paul.gortmaker@windriver.com> Date: Sun, 23 Jan 2011 19:17:40 -0500 Subject: [PATCH] page_alloc: augment percpu pages support for newer kernels @@ -45,7 +45,7 @@ break them out into separate explicit commits. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 75d0e57..bde9ea1 100644 +index 6de091b..609be51 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -170,7 +170,7 @@ static inline void __lock_cpu_pcp(unsigned long *flags, int cpu) @@ -57,7 +57,7 @@ index 75d0e57..bde9ea1 100644 #else local_irq_save(*flags); #endif -@@ -571,18 +571,48 @@ static inline int free_pages_check(struct page *page) +@@ -572,18 +572,48 @@ static inline int free_pages_check(struct page *page) * pinned" detection logic. */ static void free_pcppages_bulk(struct zone *zone, int count, @@ -109,7 +109,7 @@ index 75d0e57..bde9ea1 100644 while (count) { struct page *page; struct list_head *list; -@@ -598,22 +628,16 @@ static void free_pcppages_bulk(struct zone *zone, int count, +@@ -599,22 +629,16 @@ static void free_pcppages_bulk(struct zone *zone, int count, batch_free++; if (++migratetype == MIGRATE_PCPTYPES) migratetype = 0; @@ -135,7 +135,7 @@ index 75d0e57..bde9ea1 100644 } static void free_one_page(struct zone *zone, struct page *page, int order, -@@ -1021,16 +1045,6 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order, +@@ -1022,16 +1046,6 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order, return i; } @@ -152,7 +152,7 @@ index 75d0e57..bde9ea1 100644 #ifdef CONFIG_NUMA /* * Called from the vmstat counter updater to drain pagesets of this -@@ -1042,20 +1056,19 @@ isolate_pcp_pages(int count, struct list_head *src, struct list_head *dst) +@@ -1043,20 +1057,19 @@ isolate_pcp_pages(int count, struct list_head *src, struct list_head *dst) */ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp) { @@ -177,7 +177,7 @@ index 75d0e57..bde9ea1 100644 } #endif -@@ -1073,8 +1086,7 @@ static void drain_pages(unsigned int cpu) +@@ -1074,8 +1087,7 @@ static void drain_pages(unsigned int cpu) for_each_populated_zone(zone) { struct per_cpu_pageset *pset; @@ -187,7 +187,7 @@ index 75d0e57..bde9ea1 100644 int count; __lock_cpu_pcp(&flags, cpu); -@@ -1084,12 +1096,13 @@ static void drain_pages(unsigned int cpu) +@@ -1086,12 +1098,13 @@ static void drain_pages(unsigned int cpu) WARN_ON(1); continue; } @@ -203,7 +203,7 @@ index 75d0e57..bde9ea1 100644 } } -@@ -1194,8 +1207,8 @@ static void free_hot_cold_page(struct page *page, int cold) +@@ -1196,8 +1209,8 @@ static void free_hot_cold_page(struct page *page, int cold) struct per_cpu_pageset *pset; struct per_cpu_pages *pcp; unsigned long flags; @@ -214,7 +214,7 @@ index 75d0e57..bde9ea1 100644 kmemcheck_free_shadow(page, 0); -@@ -1240,15 +1253,17 @@ static void free_hot_cold_page(struct page *page, int cold) +@@ -1242,16 +1255,15 @@ static void free_hot_cold_page(struct page *page, int cold) list_add(&page->lru, &pcp->lists[migratetype]); pcp->count++; if (pcp->count >= pcp->high) { @@ -227,17 +227,14 @@ index 75d0e57..bde9ea1 100644 count = pcp->batch; put_zone_pcp(zone, flags, this_cpu); - free_pages_bulk(zone, count, &free_list, 0); -- } else --out: put_zone_pcp(zone, flags, this_cpu); + free_pcppages_bulk(zone, count, &dst); -+ return; -+ } -+out: -+ put_zone_pcp(zone, flags, this_cpu); + return; + } +- + out: + put_zone_pcp(zone, flags, this_cpu); } - - void free_hot_page(struct page *page) -@@ -1305,11 +1320,10 @@ again: +@@ -1310,11 +1322,10 @@ again: pset = get_zone_pcp(zone, &flags, &this_cpu); if (likely(order == 0)) { |