diff options
Diffstat (limited to 'target/linux/goldfish/patches-2.6.30/0056-mm-Check-if-any-page-in-a-pageblock-is-reserved-bef.patch')
-rw-r--r-- | target/linux/goldfish/patches-2.6.30/0056-mm-Check-if-any-page-in-a-pageblock-is-reserved-bef.patch | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/target/linux/goldfish/patches-2.6.30/0056-mm-Check-if-any-page-in-a-pageblock-is-reserved-bef.patch b/target/linux/goldfish/patches-2.6.30/0056-mm-Check-if-any-page-in-a-pageblock-is-reserved-bef.patch deleted file mode 100644 index ce1fb71..0000000 --- a/target/linux/goldfish/patches-2.6.30/0056-mm-Check-if-any-page-in-a-pageblock-is-reserved-bef.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a4eb204a8029320c2dd748daf4f51fd48d337c3d Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com> -Date: Wed, 18 Mar 2009 17:27:31 -0700 -Subject: [PATCH 056/134] mm: Check if any page in a pageblock is reserved before marking it MIGRATE_RESERVE - -This fixes a problem where the first pageblock got marked MIGRATE_RESERVE even -though it only had a few free pages. This in turn caused no contiguous memory -to be reserved and frequent kswapd wakeups that emptied the caches to get more -contiguous memory. ---- - mm/page_alloc.c | 16 +++++++++++++++- - 1 files changed, 15 insertions(+), 1 deletions(-) - ---- a/mm/page_alloc.c -+++ b/mm/page_alloc.c -@@ -2570,6 +2570,20 @@ static inline unsigned long wait_table_b - #define LONG_ALIGN(x) (((x)+(sizeof(long))-1)&~((sizeof(long))-1)) - - /* -+ * Check if a pageblock contains reserved pages -+ */ -+static int pageblock_is_reserved(unsigned long start_pfn) -+{ -+ unsigned long end_pfn = start_pfn + pageblock_nr_pages; -+ unsigned long pfn; -+ -+ for (pfn = start_pfn; pfn < end_pfn; pfn++) -+ if (PageReserved(pfn_to_page(pfn))) -+ return 1; -+ return 0; -+} -+ -+/* - * Mark a number of pageblocks as MIGRATE_RESERVE. The number - * of blocks reserved is based on zone->pages_min. The memory within the - * reserve will tend to store contiguous free pages. Setting min_free_kbytes -@@ -2598,7 +2612,7 @@ static void setup_zone_migrate_reserve(s - continue; - - /* Blocks with reserved pages will never free, skip them. */ -- if (PageReserved(page)) -+ if (pageblock_is_reserved(pfn)) - continue; - - block_migratetype = get_pageblock_migratetype(page); |