Re: [tip:sched/urgent] lockdep: Fix lock_is_held() on recursion

From: Ingo Molnar
Date: Tue Jun 07 2011 - 14:06:57 EST



* Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:

> On Tue, 2011-06-07 at 12:02 +0000, tip-bot for Peter Zijlstra wrote:
> > Commit-ID: f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d
> > Gitweb: http://git.kernel.org/tip/f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d
> > Author: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > AuthorDate: Mon, 6 Jun 2011 12:32:43 +0200
> > Committer: Ingo Molnar <mingo@xxxxxxx>
> > CommitDate: Tue, 7 Jun 2011 12:25:50 +0200
> >
> > lockdep: Fix lock_is_held() on recursion
> >
> > The main lock_is_held() user is lockdep_assert_held(), avoid false
> > assertions in lockdep_off() sections by unconditionally reporting the
> > lock is taken.
> >
> > [ the reason this is important is a lockdep_assert_held() in ttwu()
> > which triggers a warning under lockdep_off() as in printk() which
> > can trigger another wakeup and lock up due to spinlock
> > recursion, as reported and heroically debugged by Arne Jansen ]
> >
> > Reported-and-tested-by: Arne Jansen <lists@xxxxxxxxxxxxxx>
> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > Cc: <stable@xxxxxxxxxx>
>
> Not _that_ critical for stable since the offending lockdep_assert_held()
> doesn't exist in .39, still definitely won't hurt.

Correct, the bug was hard enough to find, i didnt want someone else
to trigger a similar one. There's numerous lockdep_assert_held()
instances all around the tree.

Thanks,

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