Bootmem broke ARM

From: Russell King (rmk+lkml_at_arm.linux.org.uk)
Date: 11/16/03

  • Next message: Ben Greear: "Re: Carrier detection for network interfaces"
    Date:	Sun, 16 Nov 2003 10:15:35 +0000
    To: Linux Kernel List <linux-kernel@vger.kernel.org>, Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>
    
    

    Andrew & others,

    2.6 contains a change to init_bootmem_core() which now sorts the nodes
    according to their start pfn. This change occurred in revision 1.20 of
    bootmem.c. Unfortunately, this active sorting broke ARM discontig memory
    support.

    With previous kernels, the nodes are added to the list in reverse order,
    so architecture code knew we had to add the highest PFN first and the
    lowest PFN node last.

    However, we now sort the nodes using node_start_pfn, which, at this point,
    will be uninitialised - the responsibility for initialising this field
    is with the generic code - in free_area_init_node() which occurs well
    after bootmem has been initialised.

    The result of this change is that we now add nodes to the tail of the
    pgdat list, which is the opposite way to 2.4.

    This causes problems for ARM because we need to use bootmem to initialise
    the kernels page tables, and we can only allocate these from node 0 - none
    of the other nodes are mapped into memory at this point.

    I, therefore, believe this change is bogus. Can it be reverted please?

    -- 
    Russell King
     Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
     maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                     2.6 Serial core
    -
    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/
    

  • Next message: Ben Greear: "Re: Carrier detection for network interfaces"

    Relevant Pages

    • Re: Bootmem broke ARM
      ... > according to their start pfn. ... > will be uninitialised - the responsibility for initialising this field ... So the attempt to sort ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • [PATCH 7/15] ptwalk: remap_pfn_range
      ... in null mappings ... -static inline void ... unsigned long pfn, unsigned long size, pgprot_t prot) ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: swsusp on x86-64 w/ nforce3
      ... Using local APIC timer interrupts. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: swsusp on x86-64 w/ nforce3
      ... Anyway, on such a system (.config and the output of dmesg are attached), I get ... counting pages to copy..[nosave pfn ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [discuss] [RFC][PATCH][Fix] swsusp: Yet another attempt to fix Bug #4959
      ... Also please add Signed-off-by ... always wrong because it avoids cross file type checking. ... Also the convention is to add _pfn to variables that are in PFNs, ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)