Re: [PATCH 3/3] slub: add hooks for kmemcheck

From: Christoph Lameter
Date: Fri Apr 18 2008 - 19:07:14 EST


On Sat, 19 Apr 2008, Vegard Nossum wrote:

> We set it to zero to allow the compiler to optimize out code if
> CONFIG_KMEMCHECK=n. For instance
>
> if (kmemcheck_page_is_tracked(page) && !(s->flags & SLAB_NOTRACK)) {
>
> Will be turned into if(0 && !(s->flags & 0)), which can be completely
> optimized away. On the other hand, if SLAB_NOTRACK is non-zero, this
> is not the case, since the flag must be tested.

The compiler will optize it again regardless of SLAB_NOTRACK. if (0 &&
whatever) is still 0.

> > Should this not go into some kmemcheck.h file?
>
> The implementations of these prototypes are in mm/slub_kmemcheck.c.
> They are only ever called from slub.c since they represent the
> interface between SLUB and kmemcheck.
>
> Would you rather have it in include/linux/slub_kmemcheck.h?

Well lets see what Pekka says.

> Currently, with SLAB/SLUB debugging enabled, the page flag will be
> cleared, then accessed in check_object(), thus generating a few
> accesses to the page. It is safer to delay the clearing of the page
> flag until no more accesses can be generated for the page.

Hmmmm.. Okay that is already dealt with by a patch in Pekka's tree.
--
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/