On Thu, 13 Dec 2007 19:40:09 -0500 Mark Lord <[email protected]> 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 <[email protected] > --- > > > --- 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-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [PATCH] fix page_alloc for larger I/O segments
- From: Matthew Wilcox <[email protected]>
- Re: [PATCH] fix page_alloc for larger I/O segments
- References:
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Matthew Wilcox <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Jens Axboe <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Jens Axboe <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Jens Axboe <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Jens Axboe <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Jens Axboe <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Andrew Morton <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: James Bottomley <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Andrew Morton <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- From: Mark Lord <[email protected]>
- [PATCH] fix page_alloc for larger I/O segments
- From: Mark Lord <[email protected]>
- Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
- Prev by Date: Re: [PATCH] apm_event{,info}_t are userspace types.
- Next by Date: Re: [PATCH -mm] ext4: remove unused code from ext4_find_entry()
- Previous by thread: [PATCH] fix page_alloc for larger I/O segments
- Next by thread: Re: [PATCH] fix page_alloc for larger I/O segments
- Index(es):