lkml.org 
[lkml]   [2007]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] fix page_alloc for larger I/O segments
    On Thu, 13 Dec 2007 19:40:09 -0500
    Mark Lord <liml@rtr.ca> 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@pobox.com
    > ---
    >
    >
    > --- 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;

    _


    \
     
     \ /
      Last update: 2007-12-14 02:07    [W:0.030 / U:0.156 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site