Re: [RFC] kmemcheck: trap uses of uninitialized memory (v2)

From: Pekka J Enberg
Date: Thu Nov 29 2007 - 04:39:54 EST


Hi,

On Nov 29, 2007 9:02 AM, Pekka Enberg <penberg@xxxxxxxxxxxxxx> wrote:
> > Is it really necessary to track every memory address? Tracking slab
> > objects would require far less memory. You might also want to make
> > kzalloc() and GFP_ZERO mark the memory area as initialized to avoid
> > some page faults.

On Thu, 29 Nov 2007, Vegard Nossum wrote:
> Yes, we are in fact only tracking the memory within SLUB allocations
> (minus what SLUB itself needs for bookkeeping -- like the caches).

Yeah but you didn't answer my question: why do we track every memory
address instead of slab objects? What's the benefit? Like I already said,
tracking slab objects would require much less memory which makes the
thing more practical. It also reduces the number of false positives (the
CONFIG_OPTIMIZE_FOR_SIZE problem). And we already have slab poisoning to
cover the cases we would not catch with this scheme.

On Thu, 29 Nov 2007, Vegard Nossum wrote:
> As for the kzalloc() and GFP_ZERO, I believe these will write zeros to
> the data in question before the memory is returned to the caller. In
> that case, the area will be "automatically" set to initialized since
> these writes are also intercepted by kmemcheck.

Yes, and what I proposed is as a potential optimization. Debugging aids
need to be fast enough to be practical.

Pekka
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/