Re: 2.6.17-rc5-mm3: bad unlock ordering (reiser4?)

Ingo Molnar
2006-06-05T08:13:00Z

* Barry K. Nathan <barryn@pobox.com> wrote:

> On 6/4/06, Ingo Molnar <mingo@elte.hu> wrote:
> >reporting the first one only is necessary, because the validator cannot
> >trust a system's dependency info that it sees as incorrect. Deadlock
> >possibilities are quite rare in a kernel that is "in balance". Right now
> >we are not "in balance" yet, because the validator has only been added a
> >couple of days ago. The flurry of initial fixes will die down quickly.
>
> So, does that mean the plan is to annotate/tweak things in order to
> shut up *each and every* false positive in the kernel?

yes. Note that for the many reasons i outlined before they are only
"half false positives" - i.e. they are potentially dangerous constructs
and they are potentially inefficient - hence we _want to_ document them
in the code, to increase the cleanliness of the kernel. A pure "false
positive" would be a totally valid and perfect locking construct being
flagged by the lock validator.

nor do these warnings really hurt anyone. Lockdep prints info and then
shuts up - the system continues to work.

> Anyway, I tried your patch and I got this:

please try the addon patch below.

Ingo

Index: linux/fs/reiser4/txnmgr.h
===================================================================
--- linux.orig/fs/reiser4/txnmgr.h
+++ linux/fs/reiser4/txnmgr.h
@@ -567,7 +567,7 @@ static inline void spin_unlock_txnh(txn_
LOCK_CNT_DEC(spin_locked_txnh);
LOCK_CNT_DEC(spin_locked);

- spin_unlock(&(txnh->hlock));
+ spin_unlock_non_nested(&(txnh->hlock));
}

#define spin_ordering_pred_txnmgr(tmgr) \