summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorMel Gorman2012-12-06 20:01:14 +0100
committerLinus Torvalds2012-12-06 20:17:33 +0100
commit60177d31d215bc2b4c5a7aa6f742800e04fa0a92 (patch)
treec45e15fc9b97b3ebffb6f7876512d35fe1d7aa46 /Documentation
parentMerge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus (diff)
downloadkernel-qcow2-linux-60177d31d215bc2b4c5a7aa6f742800e04fa0a92.tar.gz
kernel-qcow2-linux-60177d31d215bc2b4c5a7aa6f742800e04fa0a92.tar.xz
kernel-qcow2-linux-60177d31d215bc2b4c5a7aa6f742800e04fa0a92.zip
mm: compaction: validate pfn range passed to isolate_freepages_block
Commit 0bf380bc70ec ("mm: compaction: check pfn_valid when entering a new MAX_ORDER_NR_PAGES block during isolation for migration") added a check for pfn_valid() when isolating pages for migration as the scanner does not necessarily start pageblock-aligned. Since commit c89511ab2f8f ("mm: compaction: Restart compaction from near where it left off"), the free scanner has the same problem. This patch makes sure that the pfn range passed to isolate_freepages_block() is within the same block so that pfn_valid() checks are unnecessary. In answer to Henrik's wondering why others have not reported this: reproducing this requires a large enough hole with the right aligment to have compaction walk into a PFN range with no memmap. Size and alignment depends in the memory model - 4M for FLATMEM and 128M for SPARSEMEM on x86. It needs a "lucky" machine. Reported-by: Henrik Rydberg <rydberg@euromail.se> Signed-off-by: Mel Gorman <mgorman@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions