summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlastimil Babka <vbabka@suse.cz>2017-11-17 15:26:41 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-17 16:10:00 -0800
commitd3c85bad89b9153df741af14ad859ee49677f00d (patch)
tree7e8744f20b166ab955d03eb4acd3bd4e11ae462a
parent2583d6713267a4c80126e4e50dd45f5cf685ebe8 (diff)
downloadlwn-d3c85bad89b9153df741af14ad859ee49677f00d.tar.gz
lwn-d3c85bad89b9153df741af14ad859ee49677f00d.zip
mm, compaction: remove unneeded pageblock_skip_persistent() checks
Commit f3c931633a59 ("mm, compaction: persistently skip hugetlbfs pageblocks") has introduced pageblock_skip_persistent() checks into migration and free scanners, to make sure pageblocks that should be persistently skipped are marked as such, regardless of the ignore_skip_hint flag. Since the previous patch introduced a new no_set_skip_hint flag, the ignore flag no longer prevents marking pageblocks as skipped. Therefore we can remove the special cases. The relevant pageblocks will be marked as skipped by the common logic which marks each pageblock where no page could be isolated. This makes the code simpler. Link: http://lkml.kernel.org/r/20171102121706.21504-3-vbabka@suse.cz Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: David Rientjes <rientjes@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/compaction.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/mm/compaction.c b/mm/compaction.c
index bb1188a9d58e..10cd757f1006 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -476,10 +476,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc,
if (PageCompound(page)) {
const unsigned int order = compound_order(page);
- if (pageblock_skip_persistent(page, order)) {
- set_pageblock_skip(page);
- blockpfn = end_pfn;
- } else if (likely(order < MAX_ORDER)) {
+ if (likely(order < MAX_ORDER)) {
blockpfn += (1UL << order) - 1;
cursor += (1UL << order) - 1;
}
@@ -801,10 +798,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
if (PageCompound(page)) {
const unsigned int order = compound_order(page);
- if (pageblock_skip_persistent(page, order)) {
- set_pageblock_skip(page);
- low_pfn = end_pfn;
- } else if (likely(order < MAX_ORDER))
+ if (likely(order < MAX_ORDER))
low_pfn += (1UL << order) - 1;
goto isolate_fail;
}
@@ -867,13 +861,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
* is safe to read and it's 0 for tail pages.
*/
if (unlikely(PageCompound(page))) {
- const unsigned int order = compound_order(page);
-
- if (pageblock_skip_persistent(page, order)) {
- set_pageblock_skip(page);
- low_pfn = end_pfn;
- } else
- low_pfn += (1UL << order) - 1;
+ low_pfn += (1UL << compound_order(page)) - 1;
goto isolate_fail;
}
}