From: Catalin Marinas <catalin.marinas@arm.com>
To: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Vegard Nossum <vegard.nossum@gmail.com>,
Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org
Subject: Re: WARNING: kmemcheck: Caught 32-bit read from uninitialized memory (f6f6e1a4), by kmemleak's scan_block()
Date: Tue, 25 Aug 2009 10:25:40 +0100 [thread overview]
Message-ID: <1251192340.15678.27.camel@pc1117.cambridge.arm.com> (raw)
In-Reply-To: <1251191755.26351.4.camel@penberg-laptop>
On Tue, 2009-08-25 at 12:15 +0300, Pekka Enberg wrote:
> On Tue, 2009-08-25 at 10:11 +0100, Catalin Marinas wrote:
> > Yes, that's possible.
> >
> > Does kmemcheck work on a page-range basis. If an object doesn't cross
> > page boundaries, would it be considered fully initialised after writing
> > a single location?
> >
> > > I think it would be better to ask kmemcheck on a per-pointer basis
> > > (i.e. for each pointer-sized word in the object), whether it is
> > > initialized or not.
> >
> > This should work but how expensive is this check?
>
> Everything in kmemcheck is expensive :-). kmemcheck_shadow_lookup()
> needs to do PTE lookup to find the shadow page where we record object
> states. I'm not sure why that's a problem, though. If you've enabled
> kmemcheck, everything is already dead slow and kmemleak scanning happens
> in background, no?
It happens in background but the scan_block() function is called, in
most cases, with interrupts disabled and a spinlock held (to avoid the
object being freed during scanning). In my kmemleak branch, queued for
the next merging window, there are patches to allow rescheduling during
object scanning (by releasing the lock temporarily), so it shouldn't be
a problem.
--
Catalin
next prev parent reply other threads:[~2009-08-25 9:25 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-25 7:19 Ingo Molnar
2009-08-25 8:04 ` Vegard Nossum
2009-08-25 8:08 ` Pekka Enberg
2009-08-25 8:27 ` Catalin Marinas
2009-08-25 8:31 ` Pekka Enberg
2009-08-25 8:40 ` Ingo Molnar
2009-08-25 8:48 ` Pekka Enberg
2009-08-25 8:32 ` Ingo Molnar
2009-08-25 8:45 ` Pekka Enberg
2009-08-25 8:48 ` Ingo Molnar
2009-08-25 8:54 ` Pekka Enberg
2009-08-25 9:03 ` Vegard Nossum
2009-08-25 9:11 ` Catalin Marinas
2009-08-25 9:15 ` Pekka Enberg
2009-08-25 9:25 ` Catalin Marinas [this message]
2009-08-25 9:11 ` Pekka Enberg
2009-08-25 9:21 ` Catalin Marinas
2009-08-25 9:26 ` Pekka Enberg
2009-08-25 9:28 ` Catalin Marinas
2009-08-25 9:31 ` Pekka Enberg
2009-08-25 9:34 ` Catalin Marinas
2009-08-25 9:34 ` Ingo Molnar
2009-08-25 10:43 ` Ingo Molnar
2009-08-25 13:57 ` Catalin Marinas
2009-08-26 10:48 ` Pekka Enberg
2009-08-26 11:17 ` Ingo Molnar
2009-08-25 9:25 ` 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=1251192340.15678.27.camel@pc1117.cambridge.arm.com \
--to=catalin.marinas@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=penberg@cs.helsinki.fi \
--cc=vegard.nossum@gmail.com \
/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®