summaryrefslogtreecommitdiffstats
path: root/mm/highmem.c
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@google.com>2017-11-17 15:26:30 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-17 16:10:00 -0800
commit21dc7e023611fbcf8e38f255731bcf3cc38e7638 (patch)
tree6487d3f4f8887428a17f189610dda040d8bf7afd /mm/highmem.c
parenta0647dc9208fae9124ca38d43a5c3c950d955291 (diff)
downloadlinux-stable-21dc7e023611fbcf8e38f255731bcf3cc38e7638.tar.gz
linux-stable-21dc7e023611fbcf8e38f255731bcf3cc38e7638.tar.bz2
linux-stable-21dc7e023611fbcf8e38f255731bcf3cc38e7638.zip
mm, compaction: persistently skip hugetlbfs pageblocks
It is pointless to migrate hugetlb memory as part of memory compaction if the hugetlb size is equal to the pageblock order. No defragmentation is occurring in this condition. It is also pointless to for the freeing scanner to scan a pageblock where a hugetlb page is pinned. Unconditionally skip these pageblocks, and do so peristently so that they are not rescanned until it is observed that these hugepages are no longer pinned. It would also be possible to do this by involving the hugetlb subsystem in marking pageblocks to no longer be skipped when they hugetlb pages are freed. This is a simple solution that doesn't involve any additional subsystems in pageblock skip manipulation. [rientjes@google.com: fix build] Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1708201734390.117182@chino.kir.corp.google.com Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1708151639130.106658@chino.kir.corp.google.com Signed-off-by: David Rientjes <rientjes@google.com> Tested-by: Michal Hocko <mhocko@kernel.org> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Mel Gorman <mgorman@techsingularity.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/highmem.c')
0 files changed, 0 insertions, 0 deletions