lkml.org 
[lkml]   [2007]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/5] Breakout page_order() to internal.h to avoid special knowledge of the buddy allocator
    Date

    The statistics patch later needs to know what order a free page is on the
    free lists. Rather than having special knowledge of page_private() when
    PageBuddy() is set, this patch places out page_order() in internal.h and
    adds a VM_BUG_ON to catch using it on non-PageBuddy pages.

    Signed-off-by: Mel Gorman <mel@csn.ul.ie>
    Signed-off-by: Christoph Lameter <clameter@sgi.com>
    Acked-by: Andy Whitcroft <apw@shadowen.org>
    ---

    internal.h | 10 ++++++++++
    page_alloc.c | 10 ----------
    2 files changed, 10 insertions(+), 10 deletions(-)

    diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.22-rc2-mm1-001_fix_movefreepages/mm/internal.h linux-2.6.22-rc2-mm1-002_breakout_pageorder/mm/internal.h
    --- linux-2.6.22-rc2-mm1-001_fix_movefreepages/mm/internal.h 2007-05-19 05:06:17.000000000 +0100
    +++ linux-2.6.22-rc2-mm1-002_breakout_pageorder/mm/internal.h 2007-05-24 16:41:31.000000000 +0100
    @@ -37,4 +37,14 @@ static inline void __put_page(struct pag
    extern void fastcall __init __free_pages_bootmem(struct page *page,
    unsigned int order);

    +/*
    + * function for dealing with page's order in buddy system.
    + * zone->lock is already acquired when we use these.
    + * So, we don't need atomic page->flags operations here.
    + */
    +static inline unsigned long page_order(struct page *page)
    +{
    + VM_BUG_ON(!PageBuddy(page));
    + return page_private(page);
    +}
    #endif
    diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.22-rc2-mm1-001_fix_movefreepages/mm/page_alloc.c linux-2.6.22-rc2-mm1-002_breakout_pageorder/mm/page_alloc.c
    --- linux-2.6.22-rc2-mm1-001_fix_movefreepages/mm/page_alloc.c 2007-05-24 16:37:27.000000000 +0100
    +++ linux-2.6.22-rc2-mm1-002_breakout_pageorder/mm/page_alloc.c 2007-05-24 16:41:31.000000000 +0100
    @@ -336,16 +336,6 @@ static inline void prep_zero_page(struct
    clear_highpage(page + i);
    }

    -/*
    - * function for dealing with page's order in buddy system.
    - * zone->lock is already acquired when we use these.
    - * So, we don't need atomic page->flags operations here.
    - */
    -static inline unsigned long page_order(struct page *page)
    -{
    - return page_private(page);
    -}
    -
    static inline void set_page_order(struct page *page, int order)
    {
    set_page_private(page, order);
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-05-25 11:25    [W:0.020 / U:29.900 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site