Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]

From: Arjan van de Ven
Date: Thu Oct 12 2006 - 02:52:03 EST


On Thu, 2006-10-12 at 09:46 +1000, Neil Brown wrote:
> On Wednesday October 11, akpm@xxxxxxxx wrote:
> > >
> > > So A waits on B and C, C waits on B, B waits on A.
> > > Deadlock.
> >
> > Except the entire operation is serialised by the the two top-level callers
> > (cpu_up() and cpu_down()) taking mutex_lock(&cpu_add_remove_lock). Can
> > lockdep be taught about that?
>
> So you are saying that even though we have locking sequences
> A -> B and B -> A,
> that cannot - in this case - cause a deadlock as both sequences only
> ever happen under a third exclusive lock C,
> So when lockdep records a lock-dependency A -> B, it should also
> record a list of locks that are *always* held when that dependency
> occurs.

in that case... why are A and B there *at all* ?


-
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/