• Andrey Ryabinin's avatar
    mm: slub: SLUB_DEBUG=n: use the same alloc/free hooks as for SLUB_DEBUG=y · 02e72cc6
    Andrey Ryabinin authored
    There are two versions of alloc/free hooks now - one for
    CONFIG_SLUB_DEBUG=y and another one for CONFIG_SLUB_DEBUG=n.
    
    I see no reason why calls to other debugging subsystems (LOCKDEP,
    DEBUG_ATOMIC_SLEEP, KMEMCHECK and FAILSLAB) are hidden under SLUB_DEBUG.
    All this features should work regardless of SLUB_DEBUG config, as all of
    them already have own Kconfig options.
    
    This also fixes failslab for CONFIG_SLUB_DEBUG=n configuration.  It
    simply has not worked before because should_failslab() call was in a
    hook hidden under "#ifdef CONFIG_SLUB_DEBUG #else".
    
    Note: There is one concealed change in allocation path for SLUB_DEBUG=n
    and all other debugging features disabled.  The might_sleep_if() call
    can generate some code even if DEBUG_ATOMIC_SLEEP=n.  For
    PREEMPT_VOLUNTARY=y might_sleep() inserts _cond_resched() call, but I
    think it should be ok.
    Signed-off-by: default avatarAndrey Ryabinin <a.ryabinin@samsung.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    02e72cc6
slub.c 126 KB