Re: [BUG] msr-trace.h:42 suspicious rcu_dereference_check() usage!

From: Steven Rostedt
Date: Mon Nov 21 2016 - 14:15:26 EST


On Mon, 21 Nov 2016 10:37:00 -0800
Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:


> Just adding a few inlines won't fix the gigantic bloat that is currently
> there. See the PT trace I posted earlier (it was even truncated, it's
> actually worse). Just a single enabled trace point took about a us.

If you want to play with that, enable "Add tracepoint that benchmarks
tracepoints", and enable /sys/kernel/debug/tracing/events/benchmark

I just did on my box, and I have a max of 1.27 us, average .184 us.

Thus, on average, a tracepoint takes 184 nanoseconds.

Note, a cold cache tracepoint (the first one it traced which is not
saved in the "max") was 3.3 us.

Yes it can still be improved, and I do spend time doing that.

>
> POPF can cause some serializion but it won't be more than a few tens
> of cycles, which would be a few percent at best.
>
> Here is it again untruncated:
>
> http://halobates.de/tracepoint-trace

There's a lot of push and pop regs due to function calling. There's
places that inlines can still improve things, and perhaps even some
likely unlikelys well placed.

-- Steve