lkml.org 
[lkml]   [2011]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH repost] mm,x86: remove debug_pagealloc_enabled
    On Mon, Dec 05, 2011 at 12:06:56PM +0100, Ingo Molnar wrote:
    >
    > * Stanislaw Gruszka <sgruszka@redhat.com> wrote:
    >
    > > When (no)bootmem finish operation, it pass pages to buddy allocator.
    > > Since debug_pagealloc_enabled is not set, we will do not protect pages,
    > > what is not what we want with CONFIG_DEBUG_PAGEALLOC=y.
    > >
    > > To fix remove debug_pagealloc_enabled. That variable was introduced by
    > > commit 12d6f21e "x86: do not PSE on CONFIG_DEBUG_PAGEALLOC=y" to get
    > > more CPA (change page attribude) code testing. But currently we have
    > > CONFIG_CPA_DEBUG, which test CPA.
    > >
    > > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    > > Acked-by: Mel Gorman <mgorman@suse.de>
    > > ---
    > > arch/x86/mm/pageattr.c | 6 ------
    > > include/linux/mm.h | 10 ----------
    > > init/main.c | 5 -----
    > > mm/debug-pagealloc.c | 3 ---
    > > 4 files changed, 0 insertions(+), 24 deletions(-)
    >
    > I'm getting this boot crash with the patch applied:

    I'm sorry for breaking the boot. I tried to reproduce problem on my
    laptop, but failed. I plan to test patch with your config on some other
    machines.

    On the meantime can you test attached incremental patch and see if it
    workaround the crash? I suspect memblock reuse pages that it passed
    already to buddy allocator.

    Thanks
    Stanislaw
    diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
    index 29f7c6d..0d0ddcb 100644
    --- a/arch/x86/mm/init_32.c
    +++ b/arch/x86/mm/init_32.c
    @@ -760,6 +760,9 @@ void __init mem_init(void)
    #ifdef CONFIG_FLATMEM
    BUG_ON(!mem_map);
    #endif
    +
    + set_highmem_pages_init();
    +
    /* this will put all low memory onto the freelists */
    totalram_pages += free_all_bootmem();

    @@ -771,8 +774,6 @@ void __init mem_init(void)
    if (page_is_ram(tmp) && PageReserved(pfn_to_page(tmp)))
    reservedpages++;

    - set_highmem_pages_init();
    -
    codesize = (unsigned long) &_etext - (unsigned long) &_text;
    datasize = (unsigned long) &_edata - (unsigned long) &_etext;
    initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
    \
     
     \ /
      Last update: 2011-12-05 16:03    [W:0.022 / U:0.448 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site