On Thu, 13 Dec 2007 19:40:09 -0500 Mark Lord <liml@xxxxxx> wrote: > And here is a patch that seems to fix it for me here: > > * * * * > > Fix page allocator to give better change of larger contiguous segments (again). > > Signed-off-by: Mark Lord <mlord@xxxxxxxxx > --- > > > --- old/mm/page_alloc.c.orig 2007-12-13 19:25:15.000000000 -0500 > +++ linux-2.6/mm/page_alloc.c 2007-12-13 19:35:50.000000000 -0500 > @@ -954,7 +954,7 @@ > goto failed; > } > /* Find a page of the appropriate migrate type */ > - list_for_each_entry(page, &pcp->list, lru) { > + list_for_each_entry_reverse(page, &pcp->list, lru) { > if (page_private(page) == migratetype) { > list_del(&page->lru); > pcp->count--; - needs help to make it apply to mainline - needs a comment, methinks... --- a/mm/page_alloc.c~fix-page-allocator-to-give-better-chance-of-larger-contiguous-segments-again +++ a/mm/page_alloc.c @@ -1060,8 +1060,12 @@ again: goto failed; } - /* Find a page of the appropriate migrate type */ - list_for_each_entry(page, &pcp->list, lru) + /* + * Find a page of the appropriate migrate type. Doing a + * reverse-order search here helps us to hand out pages in + * ascending physical-address order. + */ + list_for_each_entry_reverse(page, &pcp->list, lru) if (page_private(page) == migratetype) break; _ - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html