12 Oct, 2010

2 commits

  • Stephen found

    WARNING: mm/built-in.o(.text+0x25ab8): Section mismatch in reference from the function memblock_find_base() to the function .init.text:memblock_find_region()
    The function memblock_find_base() references
    the function __init memblock_find_region().
    This is often because memblock_find_base lacks a __init
    annotation or the annotation of memblock_find_region is wrong.

    So let memblock_find_region() to use __init_memblock instead of __init
    directly.

    Also fix one function that did not have __init* to be __init_memblock.

    Reported-by: Stephen Rothwell
    Signed-off-by: Yinghai Lu
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Yinghai Lu
     
  • The Xen setup code needs to call memblock_x86_reserve_range() very early,
    so allow it to initialize the memblock subsystem before doing so. The
    second memblock_init() is ignored.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: Yinghai Lu
    Cc: Benjamin Herrenschmidt
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Jeremy Fitzhardinge
     

06 Oct, 2010

1 commit

  • When trying to find huge range for crashkernel, get

    [ 0.000000] ------------[ cut here ]------------
    [ 0.000000] WARNING: at arch/x86/mm/memblock.c:248 memblock_x86_reserve_range+0x40/0x7a()
    [ 0.000000] Hardware name: Sun Fire x4800
    [ 0.000000] memblock_x86_reserve_range: wrong range [0xffffffff37000000, 0x137000000)
    [ 0.000000] Modules linked in:
    [ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.36-rc5-tip-yh-01876-g1cac214-dirty #59
    [ 0.000000] Call Trace:
    [ 0.000000] [] ? memblock_x86_reserve_range+0x40/0x7a
    [ 0.000000] [] warn_slowpath_common+0x85/0x9e
    [ 0.000000] [] warn_slowpath_fmt+0x6e/0x70
    [ 0.000000] [] ? memblock_find_region+0x40/0x78
    [ 0.000000] [] ? memblock_find_base+0x9a/0xb9
    [ 0.000000] [] memblock_x86_reserve_range+0x40/0x7a
    [ 0.000000] [] setup_arch+0x99d/0xb2a
    [ 0.000000] [] ? trace_hardirqs_off+0xd/0xf
    [ 0.000000] [] ? _raw_spin_unlock_irqrestore+0x3d/0x4c
    [ 0.000000] [] start_kernel+0xde/0x3f1
    [ 0.000000] [] x86_64_start_reservations+0xa0/0xa4
    [ 0.000000] [] x86_64_start_kernel+0x106/0x10d
    [ 0.000000] ---[ end trace a7919e7f17c0a725 ]---
    [ 0.000000] Reserving 8192MB of memory at 17592186041200MB for crashkernel (System RAM: 526336MB)

    This is caused by a wraparound in the test due to size > end;
    explicitly check for this condition and fail.

    Signed-off-by: Yinghai Lu
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Yinghai Lu
     

16 Sep, 2010

1 commit

  • Stephen found a bunch of section mismatch warnings with the
    new memblock changes.

    Use __init_memblock to replace __init in memblock.c and remove
    __init in memblock.h. We should not use __init in header files.

    Reported-by: Stephen Rothwell
    Tested-by: Stephen Rothwell
    Signed-off-by: Yinghai Lu
    Cc: Peter Zijlstra
    Cc: Benjamin Herrenschmidt
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     

28 Aug, 2010

1 commit


05 Aug, 2010

28 commits


04 Aug, 2010

3 commits


14 Jul, 2010

1 commit

  • via following scripts

    FILES=$(find * -type f | grep -vE 'oprofile|[^K]config')

    sed -i \
    -e 's/lmb/memblock/g' \
    -e 's/LMB/MEMBLOCK/g' \
    $FILES

    for N in $(find . -name lmb.[ch]); do
    M=$(echo $N | sed 's/lmb/memblock/g')
    mv $N $M
    done

    and remove some wrong change like lmbench and dlmb etc.

    also move memblock.c from lib/ to mm/

    Suggested-by: Ingo Molnar
    Acked-by: "H. Peter Anvin"
    Acked-by: Benjamin Herrenschmidt
    Acked-by: Linus Torvalds
    Signed-off-by: Yinghai Lu
    Signed-off-by: Benjamin Herrenschmidt

    Yinghai Lu