Re: 2.6.17-rc6-mm1 -- BUG: possible circular locking deadlock detected!

Ingo Molnar
2006-06-08T16:12:25Z

* Anton Altaparmakov <aia21@cam.ac.uk> wrote:

> > &ni->mrec_lock - a spinlock protecting a particular inode's MFT data.
> > (finegrained lock for the MFT record) It is
> > typically taken by map_mft_record() and released by
> > unmap_mft_record().
>
> Correct, except s/spinlock/semaphore/ (that really should become a
> mutex one day).

yeah - it's in fact a mutex already.

> No it is not as explained above. Something has gotten confused
> somewhere because the order of events is the wrong way round...

did my second trace make more sense? The dependency that the validator
recorded can be pretty much taken as granted - it only stores
dependencies that truly trigger runtime. What shouldnt be taken as
granted is my explanation of the events :-)

there is a wide array of methods and APIs available to express locking
semantics to the validator in a natural and non-intrusive way [for cases
where the validator gets it wrong or simply has no way of auto-learning
them] - but for that i'll first have to understand the locking semantics
:-)

Ingo