Commit 89d3c87e authored by Andrey Ryabinin's avatar Andrey Ryabinin Committed by Linus Torvalds

mm, slub, kasan: enable user tracking by default with KASAN=y

It's recommended to have slub's user tracking enabled with CONFIG_KASAN,
because:

a) User tracking disables slab merging which improves
    detecting out-of-bounds accesses.
b) User tracking metadata acts as redzone which also improves
    detecting out-of-bounds accesses.
c) User tracking provides additional information about object.
    This information helps to understand bugs.

Currently it is not enabled by default.  Besides recompiling the kernel
with KASAN and reinstalling it, user also have to change the boot cmdline,
which is not very handy.

Enable slub user tracking by default with KASAN=y, since there is no good
reason to not do this.

[akpm@linux-foundation.org: little fixes, per David]
Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.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>
parent 10f70262
...@@ -28,8 +28,7 @@ the latter is 1.1 - 2 times faster. Inline instrumentation requires a GCC ...@@ -28,8 +28,7 @@ the latter is 1.1 - 2 times faster. Inline instrumentation requires a GCC
version 5.0 or later. version 5.0 or later.
Currently KASAN works only with the SLUB memory allocator. Currently KASAN works only with the SLUB memory allocator.
For better bug detection and nicer report, enable CONFIG_STACKTRACE and put For better bug detection and nicer reporting, enable CONFIG_STACKTRACE.
at least 'slub_debug=U' in the boot cmdline.
To disable instrumentation for specific files or directories, add a line To disable instrumentation for specific files or directories, add a line
similar to the following to the respective kernel Makefile: similar to the following to the respective kernel Makefile:
......
...@@ -15,8 +15,7 @@ config KASAN ...@@ -15,8 +15,7 @@ config KASAN
global variables requires gcc 5.0 or later. global variables requires gcc 5.0 or later.
This feature consumes about 1/8 of available memory and brings about This feature consumes about 1/8 of available memory and brings about
~x3 performance slowdown. ~x3 performance slowdown.
For better error detection enable CONFIG_STACKTRACE, For better error detection enable CONFIG_STACKTRACE.
and add slub_debug=U to boot cmdline.
choice choice
prompt "Instrumentation type" prompt "Instrumentation type"
......
...@@ -459,8 +459,10 @@ static void get_map(struct kmem_cache *s, struct page *page, unsigned long *map) ...@@ -459,8 +459,10 @@ static void get_map(struct kmem_cache *s, struct page *page, unsigned long *map)
/* /*
* Debug settings: * Debug settings:
*/ */
#ifdef CONFIG_SLUB_DEBUG_ON #if defined(CONFIG_SLUB_DEBUG_ON)
static int slub_debug = DEBUG_DEFAULT_FLAGS; static int slub_debug = DEBUG_DEFAULT_FLAGS;
#elif defined(CONFIG_KASAN)
static int slub_debug = SLAB_STORE_USER;
#else #else
static int slub_debug; static int slub_debug;
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment