summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVignesh Radhakrishnan <vigneshr@codeaurora.org>2015-01-30 16:26:41 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:23:43 -0700
commit1dd9d8dd987cb634ab34f2002379b4a878bd2d8e (patch)
treebd52fc0160edd1e3f89a128485e97aab05b9f391
parent1723ce4914dfb3627329ec4abe6e69d081087e35 (diff)
kmemleak : Make module scanning optional using config
Currently kmemleak scans module memory as provided in the area list. This takes up lot of time with irq's and preemption disabled. Provide a compile time configurable config to enable this functionality. Change-Id: I5117705e7e6726acdf492e7f87c0703bc1f28da0 Signed-off-by: Vignesh Radhakrishnan <vigneshr@codeaurora.org> Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org> [satyap: trivial merge conflict resolution and remove duplicate entry] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
-rw-r--r--kernel/module.c8
-rw-r--r--lib/Kconfig.debug12
2 files changed, 13 insertions, 7 deletions
diff --git a/kernel/module.c b/kernel/module.c
index 3c137e55853b..2ec4df630677 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2579,7 +2579,13 @@ void * __weak module_alloc(unsigned long size)
return vmalloc_exec(size);
}
-#ifdef CONFIG_DEBUG_KMEMLEAK
+#if defined(CONFIG_DEBUG_KMEMLEAK) && defined(CONFIG_DEBUG_MODULE_SCAN_OFF)
+static void kmemleak_load_module(const struct module *mod,
+ const struct load_info *info)
+{
+ kmemleak_no_scan(mod->module_core);
+}
+#elif defined(CONFIG_DEBUG_KMEMLEAK)
static void kmemleak_load_module(const struct module *mod,
const struct load_info *info)
{
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index d99c78207349..b959b9a0030b 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -956,14 +956,14 @@ config DEBUG_TASK_STACK_SCAN_OFF
writing to the debugfs entry :
echo "stack=on" > /sys/kernel/debug/kmemleak.
-config DEBUG_TASK_STACK_SCAN_OFF
- bool "Disable kmemleak task stack scan by default"
+config DEBUG_MODULE_SCAN_OFF
+ bool "Disable module memory scan for leaks by default"
depends on DEBUG_KMEMLEAK
help
- Say Y here to disable kmemleak task stack scan by default
- at compile time. It can be enabled later if required by
- writing to the debugfs entry :
- echo "stack=on" > /sys/kernel/debug/kmemleak.
+ Say Y here to disable scanning kernel modules area list
+ by default for memory leaks. Module scan an potentially
+ run with irq/preemption disabled for considerable amount
+ of time.
config DEBUG_PREEMPT
bool "Debug preemptible kernel"