• Stanislaw Gruszka's avatar
    mm: more intensive memory corruption debugging · c0a32fc5
    Stanislaw Gruszka authored
    With CONFIG_DEBUG_PAGEALLOC configured, the CPU will generate an exception
    on access (read,write) to an unallocated page, which permits us to catch
    code which corrupts memory.  However the kernel is trying to maximise
    memory usage, hence there are usually few free pages in the system and
    buggy code usually corrupts some crucial data.
    
    This patch changes the buddy allocator to keep more free/protected pages
    and to interlace free/protected and allocated pages to increase the
    probability of catching corruption.
    
    When the kernel is compiled with CONFIG_DEBUG_PAGEALLOC,
    debug_guardpage_minorder defines the minimum order used by the page
    allocator to grant a request.  The requested size will be returned with
    the remaining pages used as guard pages.
    
    The default value of debug_guardpage_minorder is zero: no change from
    current behaviour.
    
    [akpm@linux-foundation.org: tweak documentation, s/flg/flag/]
    Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c0a32fc5
page-debug-flags.h 967 Bytes