On Tue, 4 Dec 2007, Jarek Poplawski wrote: > Alan Stern wrote, On 12/04/2007 04:17 PM: > ... > > > Furthermore, in this case deadlock isn't really impossible -- it could > > occur if there were a bug somewhere else in the kernel. So lockdep was > > correct to warn that deadlock might occur. > > > Alan, if the scenario was like you described at the beginning, there was > no deadlock possible, unless some errors in the notifier. Or errors in the notifier's caller. > These #1-#3 > threads were only helpful to guess what lockdep could 'think', but I > guess notifier doesn't use 2 rivaling threads for a wake, so, lockdep > probably needed additional information. And you really can't consider > any hypothetical kernel bugs here because then each lock is vulnerable. But you have to consider hypothetical kernel bugs. That's exactly what lockdep is for -- to warn you about possible deadlocks that could be caused by bugs. As a simple example, if thread #1 does "lock(A); lock(B)" and thread #2 does "lock(B); lock(A)" then there's a possible bug. Lockdep should warn about you, and it does -- even if those two threads can never run at the same time. If lockdep warned about deadlocks only when they actually happened, it wouldn't be nearly so useful. Alan Stern _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm