Re: [2.6.22] circular lock detected

From: Peter Zijlstra
Date: Fri Jan 04 2008 - 04:22:14 EST



On Fri, 2008-01-04 at 07:40 +0000, Simon Arlott wrote:
> On 25/09/07 09:46, Jan Kara wrote:
> > On Tue 25-09-07 10:02:43, Peter Zijlstra wrote:
> >> On Mon, 3 Sep 2007 16:01:35 +0200 Jan Kara <jack@xxxxxxx> wrote:
> >>
> >> > On Mon 03-09-07 05:49:59, Andrew Morton wrote:
> >> > > > On Mon, 3 Sep 2007 14:27:02 +0200 Jan Kara <jack@xxxxxxx> wrote:
> >> > > > > > On Fri, 24 Aug 2007 23:00:33 +0200 Folkert van Heusden <folkert@xxxxxxxxxxxxxx> wrote:
> >>
> >> > > > > Has been reported before, but I don't recall whether we fixed it. Jan,
> >> > > > > do you know>?
> >> > > > I think we at least found a solution: Teach lockdep that I_MUTEX for
> >> > > > different filesystems is different. Peter Zilstra wrote a patch for that
> >> > > > and Folkert even confirmed that it fixes the problem for him. I'm not
> >> > > > sure what happened with the patch afterwards though. Adding Peter to CC
> >> > > > :).
> >> > >
> >> > > But this is a tty_lock-versus-dqptr_sem ranking error. Unrelated to i_mutex?
> >> > The final report is for this ranking but the locking chain (if I understand it
> >> > right) is:
> >> > tty_mutex (con_close) -> i_mutex (sysfs: remove_subdir)
> >> > i_mutex (do_truncate) -> i_alloc_sem (notify_change) -> truncate_mutex (ext3_truncate)
> >> > truncate_mutex (ext3_get_blocks_handle) -> dqptr_sem (dquot_alloc_space)
> >> >
> >> > So it complains about tty_mutex vs dqptr_sem (I don't know why it does not
> >> > complain about tty_mutex vs i_mutex) but the wrong link in the chain is
> >> > that i_mutex from remove_subdir() [sysfs] and i_mutex from do_truncate()
> >> > [ext3] are different and should never depend on each other...
> >> >
> >>
> >> Found it again.
> > Cool, thanks Peter. Andrew, would you put it into -mm? This should take care of
> > the false lockdep warnings from the quota code. If I recall correctly, one
> > of the reporters even confirmed it fixes the problem for him.
> > The patch looks fine. You can add:
> > Signed-off-by: Jan Kara <jack@xxxxxxx>
> >
> > Honza
> >
> >> Give each filesystem its own inode lock class. The various filesystems have
> >> different locking order wrt the inode locks; esp. the pseudo filesystems
> >> differ from the rest.
> >>
> >> Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
>
> This patch still doesn't exist in 2.6.23.9 and the warning isn't fixed...

It would have been if you'd used .24-rc :-)

Attachment: signature.asc
Description: This is a digitally signed message part