Re: lockdep oddity

From: Ingo Molnar
Date: Tue Sep 05 2006 - 14:17:31 EST



* Heiko Carstens <heiko.carstens@xxxxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/