From: "Catalin Marinas" <catalin.marinas@gmail.com>
To: "Ingo Molnar" <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2.6.20-rc1 00/10] Kernel memory leak detector 0.13
Date: Tue, 19 Dec 2006 09:36:13 +0000 [thread overview]
Message-ID: <b0943d9e0612190136x16ed4ffes37f2c023bb168b17@mail.gmail.com> (raw)
In-Reply-To: <20061218195604.GA32112@elte.hu>
On 18/12/06, Ingo Molnar <mingo@elte.hu> wrote:
>
> * Catalin Marinas <catalin.marinas@gmail.com> wrote:
>
> > >at freeing we only have to look up the tree belonging to object->cpu.
> >
> > At freeing, kmemleak only gets a pointer value which has to be looked
> > up in the hash table for the corresponding memleak_object. Only after
> > that, we can know memleak_object->cpu. That's why I think we only need
> > to have a global hash table. The hash table look-up can be RCU.
> > [...]
>
> hmm ... nasty. Would it be feasible to embedd the memleak info into the
> allocated object itself? That would remove quite some runtime overhead,
> besides eliminating the global hash.
I thought about this but would be more difficult for page allocations
and even impossible if we later want to track ioremap'ed regions (or
any other resource that has a unique id). The vmalloc'ed regions are
page aligned, though not sure there is any code that makes use of this
assumption. It also makes it too dependent on the allocator itself
(maybe not a big problem). Being less intrusive makes this easier to
maintain, especially if you want to use a different allocator.
Another option would be to store kmemleak info in the slab management
structures, vm_area (for vmalloc) or page structures but this breaks
the kmemleak functions for marking the false positives (which is done
outside the allocator).
Is there any scalability/performance impact of just
acquiring/releasing a lock or this is only affected by the contention
situations? If it's the latter, there can be a lock per hash-table
entry and drastically reduce the contention. The drawback is the
doubling of the hash table size, maybe with some impact on caches and
TLBs.
--
Catalin
next prev parent reply other threads:[~2006-12-19 9:36 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-16 15:34 Catalin Marinas
2006-12-16 15:34 ` [PATCH 2.6.20-rc1 01/10] Base support for kmemleak Catalin Marinas
2006-12-16 15:34 ` [PATCH 2.6.20-rc1 02/10] Kmemleak documentation Catalin Marinas
2006-12-16 15:34 ` [PATCH 2.6.20-rc1 03/10] Add the memory allocation/freeing hooks for kmemleak Catalin Marinas
2006-12-16 15:34 ` [PATCH 2.6.20-rc1 04/10] Modules support " Catalin Marinas
2006-12-16 15:35 ` [PATCH 2.6.20-rc1 05/10] Add kmemleak support for i386 Catalin Marinas
2006-12-16 15:35 ` [PATCH 2.6.20-rc1 06/10] Add kmemleak support for ARM Catalin Marinas
2006-12-16 15:35 ` [PATCH 2.6.20-rc1 07/10] Remove some of the kmemleak false positives Catalin Marinas
2006-12-16 15:35 ` [PATCH 2.6.20-rc1 08/10] Keep the __init functions after initialization Catalin Marinas
2006-12-16 15:35 ` [PATCH 2.6.20-rc1 09/10] Testing module for kmemleak Catalin Marinas
2006-12-16 15:36 ` [PATCH 2.6.20-rc1 10/10] Update the MAINTAINERS file " Catalin Marinas
2006-12-16 16:57 ` [PATCH 2.6.20-rc1 00/10] Kernel memory leak detector 0.13 Ingo Molnar
2006-12-16 23:39 ` Catalin Marinas
2006-12-17 8:58 ` Ingo Molnar
2006-12-17 9:09 ` Ingo Molnar
2006-12-17 9:28 ` Ingo Molnar
2006-12-17 9:41 ` Ingo Molnar
2006-12-17 9:49 ` Ingo Molnar
2006-12-17 12:05 ` Catalin Marinas
2006-12-27 16:14 ` Catalin Marinas
2006-12-27 16:23 ` Arjan van de Ven
2006-12-27 16:30 ` Catalin Marinas
2006-12-27 16:47 ` Ingo Molnar
2006-12-27 16:56 ` Ingo Molnar
2006-12-27 17:02 ` Catalin Marinas
2006-12-17 11:58 ` Catalin Marinas
2006-12-17 13:28 ` Ingo Molnar
2006-12-17 11:09 ` Mike Galbraith
2006-12-17 23:05 ` Catalin Marinas
2006-12-18 7:29 ` Ingo Molnar
2006-12-18 10:28 ` Catalin Marinas
2006-12-18 11:21 ` Ingo Molnar
2006-12-18 12:26 ` Catalin Marinas
2006-12-18 19:56 ` Ingo Molnar
2006-12-19 9:36 ` Catalin Marinas [this message]
2006-12-27 13:52 ` Catalin Marinas
2006-12-27 15:08 ` Ingo Molnar
2006-12-27 17:30 ` Ingo Molnar
2006-12-28 0:15 ` Catalin Marinas
2006-12-28 9:44 ` Ingo Molnar
2006-12-28 11:50 ` Catalin Marinas
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=b0943d9e0612190136x16ed4ffes37f2c023bb168b17@mail.gmail.com \
--to=catalin.marinas@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®