lkml.org 
[lkml]   [2006]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH 1/3] zone init check and report unaligned zone boundries
    From
    zone init check and report unaligned zone boundries

    We have a number of strict constraints on the layout of struct
    page's for use with the buddy allocator. One of which is that zone
    boundries must occur at MAX_ORDER page boundries. Add a check for
    this during init.

    Signed-off-by: Andy Whitcroft <apw@shadowen.org>
    ---
    include/linux/mmzone.h | 5 +++++
    mm/page_alloc.c | 4 ++++
    2 files changed, 9 insertions(+)
    diff -upN reference/include/linux/mmzone.h current/include/linux/mmzone.h
    --- reference/include/linux/mmzone.h
    +++ current/include/linux/mmzone.h
    @@ -388,6 +388,11 @@ static inline int is_dma(struct zone *zo
    return zone == zone->zone_pgdat->node_zones + ZONE_DMA;
    }

    +static inline unsigned long zone_boundry_align_pfn(unsigned long pfn)
    +{
    + return pfn & ~((1 << MAX_ORDER) - 1);
    +}
    +
    /* These two functions are used to setup the per zone pages min values */
    struct ctl_table;
    struct file;
    diff -upN reference/mm/page_alloc.c current/mm/page_alloc.c
    --- reference/mm/page_alloc.c
    +++ current/mm/page_alloc.c
    @@ -2078,6 +2078,10 @@ static void __init free_area_init_core(s
    struct zone *zone = pgdat->node_zones + j;
    unsigned long size, realsize;

    + if (zone_boundry_align_pfn(zone_start_pfn) != zone_start_pfn)
    + printk(KERN_CRIT "node %d zone %s missaligned "
    + "start pfn\n", nid, zone_names[j]);
    +
    realsize = size = zones_size[j];
    if (zholes_size)
    realsize -= zholes_size[j];
    -
    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: 2006-05-09 13:10    [W:0.022 / U:1.184 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site