[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20060906115841.GE6898@osiris.boeblingen.de.ibm.com>
Date: Wed, 6 Sep 2006 13:58:41 +0200
From: Heiko Carstens <heiko.carstens@...ibm.com>
To: Daniel Walker <dwalker@...sta.com>
Cc: Andrew Morton <akpm@...l.org>, linux-kernel@...r.kernel.org,
Ingo Molnar <mingo@...e.hu>,
Arjan van de Ven <arjan@...radead.org>,
Hua Zhong <hzhong@...il.com>
Subject: Re: lockdep oddity
> > Found this will debugging some random memory corruptions that happen when
> > CONFIG_PROVE_LOCKING and CONFIG_PROFILE_LIKELY are both on.
> > Switching both off or having only one of them on seems to work.
> There's potential for a some issues in current -mm , given the config
> above. If you us the generic atomic operations
> (asm-generic/bitops/atomic.h) for test_and_set_bit(). It eventually
> calls into trace_hardirqs_off() and then back into likely profiling.
Your patch has this in it too:
/*
* We check for constant values with __builtin_constant_p() since
* it's not interesting to profile them, and there is a compiler
* bug in gcc 3.x which blows up during constant evalution when
* CONFIG_PROFILE_LIKELY is turned on.
*/
#define likely(x) (__builtin_constant_p(x) ? (!!(x)) : __check_likely((x), 1))
#define unlikely(x) (__builtin_constant_p(x) ? (!!(x)) : __check_likely((x), 0))
Could you define "blows up"? My reading of the text above is: "this code
below makes sure it does work with gcc 3.x as well".
Now I used gcc 3.4.1 and get random memory corruptions while with gcc 4.1.1
everything seems to be ok....
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists