LWN.net Logo

Kernel memory leak detector

From:  Catalin Marinas <catalin.marinas@arm.com>
To:  linux-kernel@vger.kernel.org
Subject:  [PATCH 00/14] Kernel memory leak detector
Date:  Fri, 19 Dec 2008 18:12:56 +0000

A new kmemleak version is available. Thanks to all who reviewed the code
and provided feedback. Kmemleak can also be found on this git tree:

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

Main changes since the previous release:

- run-time configuration by writing to the /sys/kernel/debug/memleak
  file (see Documentation/kmemleak.txt)
- boot-time disabling by passing kmemleak=off
- no scanning of the array_cache structures in slab to avoid false
  negatives
- aesthetic change - s/memleak/kmemleak for all the functions as it is
  more consistent with the documentation
- various other changes following comments received

Thanks for your comments.


Catalin Marinas (14):
      kmemleak: Add the corresponding MAINTAINERS entry
      kmemleak: Simple testing module for kmemleak
      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 kmemleak_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/kernel-parameters.txt |    4 
 Documentation/kmemleak.txt          |  142 +++
 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/kmemleak.h            |   96 ++
 include/linux/percpu.h              |    5 
 include/linux/slab.h                |    2 
 init/main.c                         |    4 
 kernel/module.c                     |   56 +
 lib/Kconfig.debug                   |   33 +
 mm/Makefile                         |    2 
 mm/kmemleak-test.c                  |  111 +++
 mm/kmemleak.c                       | 1468 +++++++++++++++++++++++++++++++++++
 mm/page_alloc.c                     |   11 
 mm/slab.c                           |   33 +
 mm/slob.c                           |   15 
 mm/slub.c                           |    5 
 mm/vmalloc.c                        |   28 +
 21 files changed, 2021 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/kmemleak.txt
 create mode 100644 include/linux/kmemleak.h
 create mode 100644 mm/kmemleak-test.c
 create mode 100644 mm/kmemleak.c

-- 
Catalin

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