goldfish: R.I.P.
[openwrt/svn-archive/archive.git] / target / linux / goldfish / patches-2.6.30 / 0056-mm-Check-if-any-page-in-a-pageblock-is-reserved-bef.patch
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 (file)
index ce1fb71..0000000
+++ /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);