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:
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.