On Thu, Jan 26, 2012 at 10:00:45AM +0100, Marek Szyprowski wrote:
From: Michal Nazarewicz mina86@mina86.com @@ -313,7 +316,7 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone, } else if (!locked) spin_lock_irq(&zone->lru_lock);
if (!pfn_valid_within(low_pfn))
nr_scanned++;if (!pfn_valid(low_pfn)) continue;
On Mon, 30 Jan 2012 12:24:28 +0100, Mel Gorman mel@csn.ul.ie wrote:
This chunk looks unrelated to the rest of the patch.
I think what you are doing is patching around a bug that CMA exposed which is very similar to the bug report at http://www.spinics.net/lists/linux-mm/msg29260.html . Is this true?
If so, I posted a fix that only calls pfn_valid() when necessary. Can you check if that works for you and if so, drop this hunk please? If the patch does not work for you, then this hunk still needs to be in a separate patch and handled separately as it would also be a fix for -stable.
I'll actually never encountered this bug myself and CMA is unlikely to expose it, since it always operates on continuous memory regions with no holes.
I've made this change because looking at the code it seemed like this may cause problems in some cases. The crash that you linked to looks like the kind of problem I was thinking about.
I'll drop this hunk and let you resolve this independently of CMA.