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

From: Andi Kleen
Date: Mon Nov 28 2016 - 16:48:41 EST


> I took a look at this and forced some more functions to be inlined. I
> did a little tweaking here and there. Could you pull my tree and see if
> things are better? I don't currently have the hardware to run this
> myself.
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
>
> branch: ftrace/core

Didn't help much unfortunately. I think you need a real fast path here.

http://halobates.de/tracepoint-trace2

$ wc -l tracepoint-trace2
595 tracepoint-trace2

Opcode Histogram:

201 mov
51 push
51 pop
34 test
32 cmp
26 jz
24 jnz
24 and
16 ret
16 lea
15 call
12 add
10 jmp

Functions with # of instructions:

25 trace_event_raw_event_sched_switch
19 trace_event_buffer_reserve
21 trace_event_buffer_lock_reserve
57 ring_buffer_lock_reserve
3 trace_clock_local
3 sched_clock
24 native_sched_clock
3 sched_clock
2 trace_clock_local
11 ring_buffer_lock_reserve
81 __rb_reserve_next
11 ring_buffer_lock_reserve
6 trace_event_buffer_lock_reserve
18 ring_buffer_event_data
5 trace_event_buffer_lock_reserve
38 tracing_generic_entry_update
11 trace_event_buffer_lock_reserve
5 trace_event_buffer_reserve
18 ring_buffer_event_data
4 trace_event_buffer_reserve
28 trace_event_raw_event_sched_switch
30 trace_event_buffer_commit
19 trace_buffer_unlock_commit_regs
11 ring_buffer_unlock_commit
85 rb_commit
18 ring_buffer_unlock_commit
10 trace_buffer_unlock_commit_regs
3 ftrace_trace_userstack
7 trace_buffer_unlock_commit_regs
11 trace_event_buffer_commit
8 trace_event_raw_event_sched_switch

-Andi