Messages in this thread | | | From | "Hua Zhong" <> | Subject | RE: lockdep oddity | Date | Tue, 5 Sep 2006 11:57:58 -0700 |
| |
Maybe we should define raw __likely/__unlikely which behave the same way as the vanilla and use them in places like spinlocks to avoid these weird problems.
> * Heiko Carstens <heiko.carstens@de.ibm.com> wrote: > > > The lock validator gives me this (latest -mm and 2.6.18-rc6): > > > > ===================================== > > [ BUG: bad unlock balance detected! ] > > ------------------------------------- > > swapper/0 is trying to release lock (resource_lock) at: > > [<0000000000042842>] request_resource+0x52/0x88 but there > are no more > > locks to release! > > > > The reason is that the BUILD_LOCK_OPS macros in > kernel/lockdep.c don't > > contain any of the *_acquire calls, while all of the > _unlock functions > > contain a *_release call. Hence I get immediately unbalanced locks. > > hmmm ... that sounds like a bug. Weird - i recently ran > PREEMPT+SMP+LOCKDEP kernels and didnt notice this. > > > 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. > > previously i had some weirdnesses with PROFILE_LIKELY too, > they were caused by it generating cross-calls from within > lockdep. Do the corruptions go away if you remove all > likely() and unlikely() markings from kernel/lockdep.c? > > Ingo
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |