• David Rientjes's avatar
    slub: add option to disable higher order debugging slabs · fa5ec8a1
    David Rientjes authored
    When debugging is enabled, slub requires that additional metadata be
    stored in slabs for certain options: SLAB_RED_ZONE, SLAB_POISON, and
    SLAB_STORE_USER.
    
    Consequently, it may require that the minimum possible slab order needed
    to allocate a single object be greater when using these options.  The
    most notable example is for objects that are PAGE_SIZE bytes in size.
    
    Higher minimum slab orders may cause page allocation failures when oom or
    under heavy fragmentation.
    
    This patch adds a new slub_debug option, which disables debugging by
    default for caches that would have resulted in higher minimum orders:
    
    	slub_debug=O
    
    When this option is used on systems with 4K pages, kmalloc-4096, for
    example, will not have debugging enabled by default even if
    CONFIG_SLUB_DEBUG_ON is defined because it would have resulted in a
    order-1 minimum slab order.
    Reported-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Tested-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    fa5ec8a1
slub.c 112 KB