| Date | Tue, 5 Sep 2006 20:12:41 +0200 | From | Ingo Molnar <> | Subject | Re: lockdep oddity |
| |
* 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/
|