All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/15] Kernel memory leak detector
@ 2008-12-10 18:26 Catalin Marinas
  2008-12-10 18:26 ` [PATCH 01/15] kmemleak: Add the base support Catalin Marinas
                   ` (15 more replies)
  0 siblings, 16 replies; 68+ messages in thread
From: Catalin Marinas @ 2008-12-10 18:26 UTC (permalink / raw)
  To: linux-kernel

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

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

Please note that even though I already got the ack from the
slab/slob/slub maintainers, I haven't included the corresponding lines
in the patch description because the patches were slightly modified to
pass the GFP flags to the kmemleak callbacks. I would be grateful if you
review these changes and re-acknowledge them.

Changes since the previous release:

- fatal errors for kmemleak are no longer fatal for the full system.
  Kmemleak can disable and clean-up after itself at run-time if such a
  condition occurs
- re-worked locking in the memleak.c file together with documentation on
  how it works
- kmemleak internal allocations use the GFP flags of the caller and are
  no longer restricted to GFP_ATOMIC
- better (hopefully) comments all over the code
- implemented most of the comments received so far (an important
  omission here is the tracking of alloc_bootmem calls since it looks a
  bit difficult to pair them with free_bootmem, the latter being used
  with reserve_bootmem or without a corresponding alloc_bootmem)

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       |  127 ++++
 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          |   93 +++
 include/linux/percpu.h           |    5 
 include/linux/slab.h             |    2 
 init/main.c                      |    4 
 kernel/module.c                  |   56 ++
 lib/Kconfig.debug                |   46 +
 mm/Makefile                      |    2 
 mm/memleak-test.c                |  110 +++
 mm/memleak.c                     | 1263 ++++++++++++++++++++++++++++++++++++++
 mm/page_alloc.c                  |    3 
 mm/slab.c                        |   18 -
 mm/slob.c                        |   15 
 mm/slub.c                        |    5 
 mm/vmalloc.c                     |   29 +
 21 files changed, 1790 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

^ permalink raw reply	[flat|nested] 68+ messages in thread
* [PATCH 00/15] Kernel memory leak detector
@ 2008-11-29 10:43 Catalin Marinas
  2008-11-29 10:43 ` [PATCH 01/15] kmemleak: Add the base support Catalin Marinas
  0 siblings, 1 reply; 68+ messages in thread
From: Catalin Marinas @ 2008-11-29 10:43 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ingo Molnar

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

^ permalink raw reply	[flat|nested] 68+ messages in thread

end of thread, other threads:[~2008-12-19 10:45 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-10 18:26 [PATCH 00/15] Kernel memory leak detector Catalin Marinas
2008-12-10 18:26 ` [PATCH 01/15] kmemleak: Add the base support Catalin Marinas
2008-12-11 22:01   ` Pekka Enberg
2008-12-12 11:36     ` Catalin Marinas
2008-12-12 13:14       ` Pekka Enberg
2008-12-16 19:36   ` Paul E. McKenney
2008-12-17  9:44     ` Catalin Marinas
2008-12-17 17:15       ` Paul E. McKenney
2008-12-10 18:27 ` [PATCH 02/15] kmemleak: Add documentation on the memory leak detector Catalin Marinas
2008-12-10 18:27 ` [PATCH 03/15] kmemleak: Add the slab memory allocation/freeing hooks Catalin Marinas
2008-12-10 18:32   ` Dave Hansen
2008-12-10 18:53   ` Dave Hansen
2008-12-11 21:22   ` Pekka Enberg
2008-12-12 14:27     ` Catalin Marinas
2008-12-18 10:46       ` Pekka Enberg
2008-12-18 16:38         ` Catalin Marinas
2008-12-18 16:49           ` Christoph Lameter
2008-12-18 17:02             ` Catalin Marinas
2008-12-18 19:35               ` Christoph Lameter
2008-12-18 20:06                 ` Pekka Enberg
2008-12-18 21:41                   ` Christoph Lameter
2008-12-19 10:44                     ` Catalin Marinas
2008-12-10 18:27 ` [PATCH 04/15] kmemleak: Add the slob " Catalin Marinas
2008-12-10 18:36   ` Matt Mackall
2008-12-11  9:47     ` Catalin Marinas
2008-12-11 21:37   ` Pekka Enberg
2008-12-10 18:27 ` [PATCH 05/15] kmemleak: Add the slub " Catalin Marinas
2008-12-11 21:30   ` Pekka Enberg
2008-12-12 13:45     ` Catalin Marinas
2008-12-18 10:51       ` Pekka Enberg
2008-12-18 15:28         ` Catalin Marinas
2008-12-18 16:05           ` Pekka Enberg
2008-12-10 18:27 ` [PATCH 06/15] kmemleak: Add the vmalloc " Catalin Marinas
2008-12-10 18:27 ` [PATCH 07/15] kmemleak: Add memleak_alloc callback from alloc_large_system_hash Catalin Marinas
2008-12-10 19:04   ` Dave Hansen
2008-12-11  9:50     ` Catalin Marinas
2008-12-11 10:08       ` Catalin Marinas
2008-12-11 17:30       ` Dave Hansen
2008-12-11 17:38         ` Catalin Marinas
2008-12-11 17:45           ` Dave Hansen
2008-12-11 19:47             ` Pekka Enberg
2008-12-12 17:04               ` Catalin Marinas
2008-12-12 17:17                 ` Dave Hansen
2008-12-12 17:43                   ` Catalin Marinas
2008-12-10 18:27 ` [PATCH 08/15] kmemleak: Add modules support Catalin Marinas
2008-12-10 18:27 ` [PATCH 09/15] x86: Provide _sdata in the vmlinux_*.lds.S files Catalin Marinas
2008-12-10 18:27 ` [PATCH 10/15] arm: Provide _sdata and __bss_stop in the vmlinux.lds.S file Catalin Marinas
2008-12-10 18:27 ` [PATCH 11/15] kmemleak: Remove some of the kmemleak false positives Catalin Marinas
2008-12-10 18:28 ` [PATCH 12/15] kmemleak: Enable the building of the memory leak detector Catalin Marinas
2008-12-10 19:20   ` Dave Hansen
2008-12-12 17:27     ` Catalin Marinas
2008-12-12 18:02       ` Dave Hansen
2008-12-10 18:28 ` [PATCH 13/15] kmemleak: Keep the __init functions after initialization Catalin Marinas
2008-12-10 18:44   ` Sam Ravnborg
2008-12-17 13:09     ` Catalin Marinas
2008-12-10 18:28 ` [PATCH 14/15] kmemleak: Simple testing module for kmemleak Catalin Marinas
2008-12-10 18:28 ` [PATCH 15/15] kmemleak: Add the corresponding MAINTAINERS entry Catalin Marinas
2008-12-11  9:44 ` [PATCH 00/15] Kernel memory leak detector Catalin Marinas
  -- strict thread matches above, loose matches on Subject: below --
2008-11-29 10:43 Catalin Marinas
2008-11-29 10:43 ` [PATCH 01/15] kmemleak: Add the base support Catalin Marinas
2008-12-01  5:39   ` Yasunori Goto
2008-12-01  6:49     ` Pekka Enberg
2008-12-01  8:11       ` Yasunori Goto
2008-12-01 12:29       ` Catalin Marinas
2008-12-01  7:15   ` Pekka Enberg
2008-12-02 21:28   ` Andrew Morton
2008-12-04 18:50     ` Catalin Marinas
2008-12-04 19:03       ` Andrew Morton
2008-12-18  9:28     ` Catalin Marinas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.