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>
This commit is contained in:
Vlastimil Babka 2017-11-17 15:26:41 -08:00 committed by Linus Torvalds
parent 2583d67132
commit d3c85bad89

View File

@ -476,10 +476,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc,
if (PageCompound(page)) { if (PageCompound(page)) {
const unsigned int order = compound_order(page); const unsigned int order = compound_order(page);
if (pageblock_skip_persistent(page, order)) { if (likely(order < MAX_ORDER)) {
set_pageblock_skip(page);
blockpfn = end_pfn;
} else if (likely(order < MAX_ORDER)) {
blockpfn += (1UL << order) - 1; blockpfn += (1UL << order) - 1;
cursor += (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)) { if (PageCompound(page)) {
const unsigned int order = compound_order(page); const unsigned int order = compound_order(page);
if (pageblock_skip_persistent(page, order)) { if (likely(order < MAX_ORDER))
set_pageblock_skip(page);
low_pfn = end_pfn;
} else if (likely(order < MAX_ORDER))
low_pfn += (1UL << order) - 1; low_pfn += (1UL << order) - 1;
goto isolate_fail; 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. * is safe to read and it's 0 for tail pages.
*/ */
if (unlikely(PageCompound(page))) { if (unlikely(PageCompound(page))) {
const unsigned int order = compound_order(page); low_pfn += (1UL << compound_order(page)) - 1;
if (pageblock_skip_persistent(page, order)) {
set_pageblock_skip(page);
low_pfn = end_pfn;
} else
low_pfn += (1UL << order) - 1;
goto isolate_fail; goto isolate_fail;
} }
} }