Re: [PATCH] perf: Don't schedule tracepoints when exclude_kernelis set

From: Peter Zijlstra
Date: Sat Apr 09 2011 - 09:38:11 EST


On Sat, 2011-04-09 at 15:27 +0200, Frederic Weisbecker wrote:
> On Sat, Apr 09, 2011 at 03:14:44PM +0200, Peter Zijlstra wrote:
> > On Fri, 2011-04-08 at 22:57 +0200, Frederic Weisbecker wrote:
> > > Instead of checking attr.exclude_kernel anytime a tracepoint
> > > event triggers, simply don't schedule the tracepoint it that
> > > attribute is set. This makes one test less in the tracing
> > > path.
> >
> > Meh, I'd much rather someone spend some time on finishing the below,
> > which is a much bigger improvement for trace-events.
>
> I secretely added that to my pile already :)
> That's indeed something we really want.
>
> The above is just a little thing I noticed yesterday and I wanted
> to fix. Nothing more.
>
> About that tracepoint collection, I'm not sure I like the idr though.
> That thing seems to be O(log(n)), I which we can rather approach O(1)
> when possible, using a hlist perhaps.

We only do 2 idr lookups at most and don't get to muck about with hash
table collisions etc. But if you can show that that is the bottleneck
you can replace the task/cpu idrs with a hashtable.

You will still need an IDR to deal with the traceevents (trace_type_idr)
in order to get the dense ID space, and the per-event idr isn't used in
the fast path at all.


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