Re: [PATCH 10/11] tracing/perf: Fix lock events recursions in thefast path

From: Peter Zijlstra
Date: Fri Feb 05 2010 - 08:02:21 EST


On Fri, 2010-02-05 at 13:12 +0100, Peter Zijlstra wrote:
> On Fri, 2010-02-05 at 13:10 +0100, Peter Zijlstra wrote:
> > On Fri, 2010-02-05 at 11:49 +0100, Ingo Molnar wrote:
> > >
> > > > That said, I'm not at all happy about removing lockdep annotations to make
> > > > the tracer faster, that's really counter productive.
> > >
> > > Are there no dynamic techniques that could be used here?
> > >
> > > Lockdep obviously wants maximum instrumentation coverage - performance be
> > > damned.
> > >
> > > Lock profiling/tracing/visualization wants the minimum subset of events it is
> > > interested in - everything else is unnecessary overhead.
> >
> > Well, they could start by moving the tracepoint inside the lockdep
> > recursion check.
>
> IIRC the reason its now outside is that you'd loose tracepoint on
> lockdep_off() usage, but having the tracer folks help on removing any
> such usage is of course a good thing.
>
> The usage thereof in nmi_enter() doesn't seem like a problem, since
> you're not supposed to be using locks from nmi context anyway, more so,
> I'd not be adverse to putting BUG_ON(in_nmi()) in every lockdep hook.

Another nasty side effect is that it (lockdep recursion) isn't IRQ aware
in that we don't do any tracking for IRQ's that hit while we're doing
lockdep. We can fix that using a recursion context like we did for perf,
that would actually improve lockdep itself too.



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