From: "Vegard Nossum" <vegard.nossum@gmail.com>
To: "Christoph Lameter" <clameter@sgi.com>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Ingo Molnar" <mingo@elte.hu>,
"Pekka Enberg" <penberg@cs.helsinki.fi>,
"Andi Kleen" <andi@firstfloor.org>,
"Richard Knutsson" <ricknu-0@student.ltu.se>
Subject: Re: [PATCH 1/2] kmemcheck v3
Date: Fri, 8 Feb 2008 00:18:21 +0100 [thread overview]
Message-ID: <19f34abd0802071518j1ffc3dafp46fcbd8d36d36f17@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0802071443440.3289@schroedinger.engr.sgi.com>
On Feb 7, 2008 11:53 PM, Christoph Lameter <clameter@sgi.com> wrote:
> > Are you sure you are not confusing tracking with tracing? It's only
> > one letter different in spelling, but makes a huge difference in
> > meaning :-)
>
> No I am quite sure what tracking is since the slab allocators have their
> own tracking.
>
> But you may want to explain things better.
Ok, then I think we are still talking about different things :-)
The tracking that kmemcheck does is actually a byte-for-byte tracking
of whether memory has been initialized or not. Think of it as valgrind
for the kernel. We do this by "hiding" pages (marking them non-present
for for MMU) and taking the page faults, which effectively tells us
what memory is being attempted to be read from or written to.
(This generally means that the tracking that kmemcheck does is
page-granular, but we can help this by making entire caches tracked or
non-tracked.)
(This also means that *all* tracked memory allocations require twice
the amount of memory that was requested -- but this is luckily
configurable by disabling kmemcheck entirely :-)).
I chose to implement this in the slab layer because this is probably
where most of the interesting allocations are coming from, and this
gives us a better control over what most users/callers care about,
namely the specific objects.
In a way, kmemcheck is similar to slab poisoning, since that can also
be used to detect the cases where memory is used before it is
initialized. This is a heavier-weight approach, however, and more
precise, as it gives you the exact location of the error.
I hope this clears it up.
Kind regards,
Vegard Nossum
next prev parent reply other threads:[~2008-02-07 23:18 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-07 21:36 Vegard Nossum
2008-02-07 21:39 ` [PATCH 2/2] " Vegard Nossum
2008-02-07 21:53 ` [PATCH 1/2] " Christoph Lameter
2008-02-07 22:12 ` Vegard Nossum
2008-02-07 22:53 ` Christoph Lameter
2008-02-07 23:18 ` Vegard Nossum [this message]
2008-02-07 23:32 ` Christoph Lameter
2008-02-08 6:40 ` Pekka Enberg
2008-02-08 8:09 ` Ingo Molnar
2008-02-08 6:30 ` Pekka Enberg
2008-02-08 6:33 ` Pekka Enberg
2008-02-08 7:10 ` Christoph Lameter
2008-02-08 7:48 ` Pekka Enberg
2008-02-08 11:55 ` Andi Kleen
2008-02-08 11:31 ` Pekka Enberg
2008-02-08 12:10 ` Andi Kleen
2008-02-08 11:39 ` Pekka Enberg
2008-02-08 11:37 ` Pekka Enberg
2008-02-08 12:15 ` Andi Kleen
2008-02-08 11:43 ` Pekka Enberg
2008-02-08 12:18 ` Vegard Nossum
2008-02-08 13:20 ` Andi Kleen
2008-02-08 12:59 ` Vegard Nossum
2008-02-08 13:48 ` Andi Kleen
2008-02-09 9:33 ` Ingo Molnar
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=19f34abd0802071518j1ffc3dafp46fcbd8d36d36f17@mail.gmail.com \
--to=vegard.nossum@gmail.com \
--cc=andi@firstfloor.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=penberg@cs.helsinki.fi \
--cc=ricknu-0@student.ltu.se \
/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
Powered by JetHome