From: Matt Mackall <mpm@selenic.com>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: linux-kernel@vger.kernel.org, Pekka Enberg <penberg@cs.helsinki.fi>
Subject: Re: [PATCH 04/15] kmemleak: Add the slob memory allocation/freeing hooks
Date: Wed, 10 Dec 2008 12:36:01 -0600 [thread overview]
Message-ID: <1228934161.3726.124.camel@calx> (raw)
In-Reply-To: <20081210182716.30323.13359.stgit@pc1117.cambridge.arm.com>
On Wed, 2008-12-10 at 18:27 +0000, Catalin Marinas wrote:
> This patch adds the callbacks to memleak_(alloc|free) functions from the
> slob allocator.
Is this different than the last one?
Acked-by: Matt Mackall <mpm@selenic.com>
> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Matt Mackall <mpm@selenic.com>
> Cc: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
> mm/slob.c | 15 +++++++++++----
> 1 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/mm/slob.c b/mm/slob.c
> index cb675d1..ff5a98d 100644
> --- a/mm/slob.c
> +++ b/mm/slob.c
> @@ -60,6 +60,7 @@
> #include <linux/kernel.h>
> #include <linux/slab.h>
> #include <linux/mm.h>
> +#include <linux/memleak.h>
> #include <linux/cache.h>
> #include <linux/init.h>
> #include <linux/module.h>
> @@ -463,6 +464,7 @@ void *__kmalloc_node(size_t size, gfp_t gfp, int node)
> {
> unsigned int *m;
> int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
> + void *ret;
>
> if (size < PAGE_SIZE - align) {
> if (!size)
> @@ -472,18 +474,18 @@ void *__kmalloc_node(size_t size, gfp_t gfp, int node)
> if (!m)
> return NULL;
> *m = size;
> - return (void *)m + align;
> + ret = (void *)m + align;
> } else {
> - void *ret;
> -
> ret = slob_new_page(gfp | __GFP_COMP, get_order(size), node);
> if (ret) {
> struct page *page;
> page = virt_to_page(ret);
> page->private = size;
> }
> - return ret;
> }
> +
> + memleak_alloc(ret, size, 1, gfp);
> + return ret;
> }
> EXPORT_SYMBOL(__kmalloc_node);
>
> @@ -493,6 +495,7 @@ void kfree(const void *block)
>
> if (unlikely(ZERO_OR_NULL_PTR(block)))
> return;
> + memleak_free(block);
>
> sp = (struct slob_page *)virt_to_page(block);
> if (slob_page(sp)) {
> @@ -555,12 +558,14 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
> } else if (flags & SLAB_PANIC)
> panic("Cannot create slab cache %s\n", name);
>
> + memleak_alloc(c, sizeof(struct kmem_cache), 1, GFP_KERNEL);
> return c;
> }
> EXPORT_SYMBOL(kmem_cache_create);
>
> void kmem_cache_destroy(struct kmem_cache *c)
> {
> + memleak_free(c);
> slob_free(c, sizeof(struct kmem_cache));
> }
> EXPORT_SYMBOL(kmem_cache_destroy);
> @@ -577,6 +582,7 @@ void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
> if (c->ctor)
> c->ctor(b);
>
> + memleak_alloc_recursive(b, c->size, 1, c->flags, flags);
> return b;
> }
> EXPORT_SYMBOL(kmem_cache_alloc_node);
> @@ -599,6 +605,7 @@ static void kmem_rcu_free(struct rcu_head *head)
>
> void kmem_cache_free(struct kmem_cache *c, void *b)
> {
> + memleak_free_recursive(b, c->flags);
> if (unlikely(c->flags & SLAB_DESTROY_BY_RCU)) {
> struct slob_rcu *slob_rcu;
> slob_rcu = b + (c->size - sizeof(struct slob_rcu));
--
Mathematics is the supreme nostalgia of our time.
next prev parent reply other threads:[~2008-12-10 18:37 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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 04/15] kmemleak: Add the slob memory allocation/freeing hooks Catalin Marinas
2008-11-30 17:30 ` Matt Mackall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1228934161.3726.124.camel@calx \
--to=mpm@selenic.com \
--cc=catalin.marinas@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=penberg@cs.helsinki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.