diff options
author | Hillf Danton <dhillf@gmail.com> | 2012-01-10 15:07:59 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-10 16:30:44 -0800 |
commit | 31b8384a555d94c78e2ea2284a323cb985441f60 (patch) | |
tree | 6e9b3fc9d14e7bbd8c6c97a1277fd3e9b5034f5b /mm/compaction.c | |
parent | e3a41a5ba9c2ab988b9f1442925109dca2382fd9 (diff) | |
download | linux-31b8384a555d94c78e2ea2284a323cb985441f60.tar.gz linux-31b8384a555d94c78e2ea2284a323cb985441f60.tar.bz2 linux-31b8384a555d94c78e2ea2284a323cb985441f60.zip |
mm: compaction: push isolate search base of compact control one pfn ahead
After isolated the current pfn will no longer be scanned and isolated if
the next round is necessary, so push the isolate_migratepages search base
of the given compact_control one step ahead.
Signed-off-by: Hillf Danton <dhillf@gmail.com>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Cc: Mel Gorman <mgorman@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/compaction.c')
-rw-r--r-- | mm/compaction.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/compaction.c b/mm/compaction.c index 1253d7ac332b..e6670c34eb49 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -365,8 +365,10 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone, nr_isolated++; /* Avoid isolating too much */ - if (cc->nr_migratepages == COMPACT_CLUSTER_MAX) + if (cc->nr_migratepages == COMPACT_CLUSTER_MAX) { + ++low_pfn; break; + } } acct_isolated(zone, cc); |