kmemleak: Enable the building of the memory leak detector
authorCatalin Marinas <catalin.marinas@arm.com>
Thu, 11 Jun 2009 12:24:13 +0000 (13:24 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 11 Jun 2009 16:04:18 +0000 (17:04 +0100)
This patch adds the Kconfig.debug and Makefile entries needed for
building kmemleak into the kernel.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
lib/Kconfig.debug
mm/Makefile

index 6cdcf38f2da9b4e4b491d15a5a6b7422b983f98b..5cc3506574e9db654ef058bf73f50e67e07dc9aa 100644 (file)
@@ -336,6 +336,28 @@ config SLUB_STATS
          out which slabs are relevant to a particular load.
          Try running: slabinfo -DA
 
+config DEBUG_KMEMLEAK
+       bool "Kernel memory leak detector"
+       depends on DEBUG_KERNEL && EXPERIMENTAL && (X86 || ARM) && \
+               !MEMORY_HOTPLUG
+       select DEBUG_SLAB if SLAB
+       select SLUB_DEBUG if SLUB
+       select DEBUG_FS if SYSFS
+       select STACKTRACE if STACKTRACE_SUPPORT
+       select KALLSYMS
+       help
+         Say Y here if you want to enable the memory leak
+         detector. The memory allocation/freeing is traced in a way
+         similar to the Boehm's conservative garbage collector, the
+         difference being that the orphan objects are not freed but
+         only shown in /sys/kernel/debug/kmemleak. Enabling this
+         feature will introduce an overhead to memory
+         allocations. See Documentation/kmemleak.txt for more
+         details.
+
+         In order to access the kmemleak file, debugfs needs to be
+         mounted (usually at /sys/kernel/debug).
+
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
        depends on DEBUG_KERNEL && PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64)
index ec73c68b601547680e6b1f49df5462b093a7e278..cb84a025fdbf2ddbb50c7305cbb9d69d10188eec 100644 (file)
@@ -38,3 +38,4 @@ obj-$(CONFIG_SMP) += allocpercpu.o
 endif
 obj-$(CONFIG_QUICKLIST) += quicklist.o
 obj-$(CONFIG_CGROUP_MEM_RES_CTLR) += memcontrol.o page_cgroup.o
+obj-$(CONFIG_DEBUG_KMEMLEAK) += kmemleak.o