|
|
Subscribe / Log in / New account

Kernel memory leak detector

From:  Catalin Marinas <catalin.marinas@arm.com>
To:  linux-kernel@vger.kernel.org
Subject:  [PATCH 00/15] Kernel memory leak detector
Date:  Sat, 29 Nov 2008 10:43:06 +0000
Message-ID:  <20081129103908.16726.24264.stgit@pc1117.cambridge.arm.com>
Cc:  Ingo Molnar <mingo@elte.hu>
Archive‑link:  Article

Here's a new version of the kernel memory leak detector. Kmemleak can
also be found in a branch on this git tree:

git://linux-arm.org/linux-2.6.git kmemleak

Changes since the previous release:

- kmemleak uses the default allocator (slab, slob or slub) instead of
  its own (which was removed), making the code simpler
- automatic scanning via a kernel thread every 10 min. The first scan
  starts 1 min after booting up. This thread prints possible memory
  leaks the first time they are encountered. Reading the
  /sys/kernel/debug/memleak file is still available to manually trigger
  a scan and show all the possible memory leaks
- scanning interruption via signals is now possible for manual scans
- implemented the comments received so far

Still to do:

- run-time and boot-time configuration like task stacks scanning,
  disabling kmemleak, enabling/disabling the automatic scanning

Thanks for your comments.


Catalin Marinas (15):
      kmemleak: Add the corresponding MAINTAINERS entry
      kmemleak: Simple testing module for kmemleak
      kmemleak: Keep the __init functions after initialization
      kmemleak: Enable the building of the memory leak detector
      kmemleak: Remove some of the kmemleak false positives
      arm: Provide _sdata and __bss_stop in the vmlinux.lds.S file
      x86: Provide _sdata in the vmlinux_*.lds.S files
      kmemleak: Add modules support
      kmemleak: Add memleak_alloc callback from alloc_large_system_hash
      kmemleak: Add the vmalloc memory allocation/freeing hooks
      kmemleak: Add the slub memory allocation/freeing hooks
      kmemleak: Add the slob memory allocation/freeing hooks
      kmemleak: Add the slab memory allocation/freeing hooks
      kmemleak: Add documentation on the memory leak detector
      kmemleak: Add the base support


 Documentation/kmemleak.txt       |  124 +++++
 MAINTAINERS                      |    6 
 arch/arm/kernel/vmlinux.lds.S    |    2 
 arch/x86/kernel/vmlinux_32.lds.S |    1 
 arch/x86/kernel/vmlinux_64.lds.S |    1 
 drivers/char/vt.c                |    7 
 include/linux/init.h             |    6 
 include/linux/memleak.h          |   87 +++
 include/linux/percpu.h           |    5 
 include/linux/slab.h             |    2 
 init/main.c                      |    4 
 kernel/module.c                  |   55 ++
 lib/Kconfig.debug                |   46 ++
 mm/Makefile                      |    2 
 mm/memleak-test.c                |  109 ++++
 mm/memleak.c                     | 1019 ++++++++++++++++++++++++++++++++++++++
 mm/page_alloc.c                  |    3 
 mm/slab.c                        |   16 +
 mm/slob.c                        |   15 -
 mm/slub.c                        |    5 
 mm/vmalloc.c                     |   29 +
 21 files changed, 1533 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/kmemleak.txt
 create mode 100644 include/linux/memleak.h
 create mode 100644 mm/memleak-test.c
 create mode 100644 mm/memleak.c

-- 
Catalin


Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds