Re: [PATCH] Add "nested" field to event of lock_release

From: Peter Zijlstra
Date: Sat Apr 10 2010 - 15:20:23 EST


On Sat, 2010-04-10 at 23:50 +0900, Hitoshi Mitake wrote:
> On 04/10/10 22:59, Peter Zijlstra wrote:
> > On Sat, 2010-04-10 at 19:41 +0900, Hitoshi Mitake wrote:
> >> State machine of perf lock requires "nested" field of lock_release(),
> >> so this patch adds it to event.
> >>
> >> Signed-off-by: Hitoshi Mitake<mitake@xxxxxxxxxxxxxxxxxxxxx>
> >> Cc: Peter Zijlstra<a.p.zijlstra@xxxxxxxxx>
> >> Cc: Paul Mackerras<paulus@xxxxxxxxx>
> >> Cc: Arnaldo Carvalho de Melo<acme@xxxxxxxxxx>
> >> Cc: Frederic Weisbecker<fweisbec@xxxxxxxxx>
> >
> > The nested flag only indicates if it could be nested, not if it was
> > actually nested. So no, this doesn't make any sense at all.
> >
> > (in fact, pretty much every lock_release out there has nested=1)
> >

Just to clarify, nested=0 means the released lock needs to be at the top
of the lock stack. This means all locking needs to be perfectly
balanced:

lock A
lock B

unlock A
unlock B

Would be an invalid sequence in that scenario. I think when lockdep was
started it was thought it would be nice to be able to clean up locking
to be always perfectly balanced, but it was found quite early to be too
much, so it got relaxed to always nested=1, allowing the above sequence.



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