Commit bc835011 authored by Andrea Arcangeli's avatar Andrea Arcangeli Committed by Linus Torvalds

thp: transhuge isolate_migratepages()

It's not worth migrating transparent hugepages during compaction.  Those
hugepages don't create fragmentation.
Signed-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
Acked-by: default avatarMel Gorman <mel@csn.ul.ie>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 5d689240
...@@ -295,10 +295,25 @@ static unsigned long isolate_migratepages(struct zone *zone, ...@@ -295,10 +295,25 @@ static unsigned long isolate_migratepages(struct zone *zone,
continue; continue;
} }
if (!PageLRU(page))
continue;
/*
* PageLRU is set, and lru_lock excludes isolation,
* splitting and collapsing (collapsing has already
* happened if PageLRU is set).
*/
if (PageTransHuge(page)) {
low_pfn += (1 << compound_order(page)) - 1;
continue;
}
/* Try isolate the page */ /* Try isolate the page */
if (__isolate_lru_page(page, ISOLATE_BOTH, 0) != 0) if (__isolate_lru_page(page, ISOLATE_BOTH, 0) != 0)
continue; continue;
VM_BUG_ON(PageTransCompound(page));
/* Successfully isolated */ /* Successfully isolated */
del_page_from_lru_list(zone, page, page_lru(page)); del_page_from_lru_list(zone, page, page_lru(page));
list_add(&page->lru, migratelist); list_add(&page->lru, migratelist);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment