diff options
author | Josh Boyer <jwboyer@redhat.com> | 2011-11-01 15:13:32 -0400 |
---|---|---|
committer | Josh Boyer <jwboyer@redhat.com> | 2011-11-01 15:15:29 -0400 |
commit | 906f34d53bd601a61ff7567e00495c78aa5f62ef (patch) | |
tree | 27d7c0d99f19bb4c008204aec3a9e58595ac7b49 /0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch | |
parent | bf976a17c4b2c2b164f6413d52ffbdab09a26d1a (diff) | |
download | kernel-906f34d53bd601a61ff7567e00495c78aa5f62ef.tar.gz kernel-906f34d53bd601a61ff7567e00495c78aa5f62ef.tar.xz kernel-906f34d53bd601a61ff7567e00495c78aa5f62ef.zip |
Linux 3.1-git4 (upstream dc47d3810cdc)
Diffstat (limited to '0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch')
-rw-r--r-- | 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch b/0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch deleted file mode 100644 index 77777f01..00000000 --- a/0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 6b7025ea927d290a59d2772828435c1893f0267f Mon Sep 17 00:00:00 2001 -From: Rik van Riel <riel@redhat.com> -Date: Fri, 7 Oct 2011 16:17:22 +0100 -Subject: [PATCH 1/2] mm: vmscan: Limit direct reclaim for higher order - allocations - -When suffering from memory fragmentation due to unfreeable pages, -THP page faults will repeatedly try to compact memory. Due to the -unfreeable pages, compaction fails. - -Needless to say, at that point page reclaim also fails to create -free contiguous 2MB areas. However, that doesn't stop the current -code from trying, over and over again, and freeing a minimum of 4MB -(2UL << sc->order pages) at every single invocation. - -This resulted in my 12GB system having 2-3GB free memory, a -corresponding amount of used swap and very sluggish response times. - -This can be avoided by having the direct reclaim code not reclaim from -zones that already have plenty of free memory available for compaction. - -If compaction still fails due to unmovable memory, doing additional -reclaim will only hurt the system, not help. - -Signed-off-by: Rik van Riel <riel@redhat.com> -Signed-off-by: Mel Gorman <mgorman@suse.de> ---- - mm/vmscan.c | 10 ++++++++++ - 1 files changed, 10 insertions(+), 0 deletions(-) - -diff --git a/mm/vmscan.c b/mm/vmscan.c -index 6072d74..8c03534 100644 ---- a/mm/vmscan.c -+++ b/mm/vmscan.c -@@ -2022,6 +2022,16 @@ static void shrink_zones(int priority, struct zonelist *zonelist, - continue; - if (zone->all_unreclaimable && priority != DEF_PRIORITY) - continue; /* Let kswapd poll it */ -+ if (COMPACTION_BUILD) { -+ /* -+ * If we already have plenty of memory free -+ * for compaction, don't free any more. -+ */ -+ if (sc->order > PAGE_ALLOC_COSTLY_ORDER && -+ (compaction_suitable(zone, sc->order) || -+ compaction_deferred(zone))) -+ continue; -+ } - /* - * This steals pages from memory cgroups over softlimit - * and returns the number of reclaimed pages and --- -1.7.6.4 - |