On 11/26/2012 03:23 AM, Mel Gorman wrote: > On Wed, Nov 21, 2012 at 02:21:51PM -0500, Dave Hansen wrote: >> >> This needs to make it in before 3.7 is released. >> > > This is also required. Dave, can you double check? The surprise is that > this does not blow up very obviously. ... > @@ -1422,7 +1422,7 @@ int capture_free_page(struct page *page, int alloc_order, int migratetype) > } > } > > - return 1UL << order; > + return 1UL << alloc_order; > } compact_capture_page() only looks at the boolean return value out of capture_free_page(), so it wouldn't notice. split_free_page() does. But, when it calls capture_free_page(), order==alloc_order, so it wouldn't make a difference. So, there's probably no actual bug here, but it's certainly a wrong return value. We should probably also fix the set_pageblock_migratetype() loop in there while we're at it. I think it's potentially trampling on the migration type of pages currently in the allocator. I _think_ that completes the list of things that need to get audited in there. -- 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>