On Fri, 1 Sep 2017, Vlastimil Babka wrote: > The pageblock_skip_persistent() function checks for HugeTLB pages of pageblock > order. When clearing pageblock skip bits for compaction, the bits are not > cleared for such pageblocks, because they cannot contain base pages suitable > for migration, nor free pages to use as migration targets. > > This optimization can be simply extended to all compound pages of order equal > or larger than pageblock order, because migrating such pages (if they support > it) cannot help sub-pageblock fragmentation. This includes THP's and also > gigantic HugeTLB pages, which the current implementation doesn't persistently > skip due to a strict pageblock_order equality check and not recognizing tail > pages. > > Additionally, this patch removes the pageblock_skip_persistent() calls from > migration and free scanner, since the generic compound page treatment together > with update_pageblock_skip() call will also lead to pageblocks starting with a > large enough compound page being immediately marked for skipping, which then > becomes persistent. > As mentioned in my other two emails, I'm not sure that persistently skipping thp memory is necessary and I disagree that we should not be persistently skipping pageblocks when cc->ignore_skip_hint is true. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>