On Tue, 25 Jan 2005 15:36:57 +0000
Paulo Marques <[EMAIL PROTECTED]> wrote:

> Evgeniy Polyakov wrote:
> > [...]
> > No, it is not called lock order reversal.
> > 
> > There are no places like
> > lock a
> > lock b
> > unlock a
> > unlock b
> 
> This would be perfectly fine. The order of unlocking doesn't really 
> matter. It is the actual locking that must be carried out on the same 
> order everywhere to guarantee that there are no deadlocks.

It is bad style, and since unlocking changes the order someone
may pass wrong locking.

> > and if they are, then I'm completely wrong.
> > 
> > What you see is only following:
> > 
> > place 1:
> > lock a
> > lock b
> > unlock b
> > lock c
> > unlock c
> > unlock a
> > 
> > place 2:
> > lock b
> > lock a
> > unlock a
> > lock c
> > unlock c
> > unlock b
> 
> I haven't look at the code yet, but this is a deadlock waiting to 
> happen. "place 1" gets "lock a", then is interrupted and "place 2" gets 
> "lock b". "place 2" waits forever for "lock a" and "place 1" waits 
> forever for "lock b". Deadlock.

As I said, that pathes are mutually exclusive - common pathes are guarded
by one lock always.

> -- 
> Paulo Marques - www.grupopie.com
> 
> "A journey of a thousand miles begins with a single step."
> Lao-tzu, The Way of Lao-tzu


        Evgeniy Polyakov

Only failure makes us experts. -- Theo de Raadt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to