Mel Gorman 60177d31d2 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>
2012-12-06 11:17:33 -08:00
..
2012-05-29 23:28:33 -04:00
2012-01-03 22:54:56 -05:00
2012-10-09 16:23:03 +09:00
2011-07-26 16:49:47 -07:00
2012-10-09 16:23:03 +09:00
2012-10-09 16:23:03 +09:00
2012-11-16 14:33:03 -08:00
2010-05-21 18:31:21 -04:00
2012-10-09 16:22:24 +09:00
2012-07-31 18:42:43 -07:00
2012-06-20 14:39:36 -07:00
2012-06-20 14:39:36 -07:00
2012-10-09 16:22:55 +09:00
2012-11-16 14:33:04 -08:00
2012-10-09 16:23:03 +09:00
2012-10-09 16:22:59 +09:00