Skip to content

RFC ftrace: Optimizing the function tracer

Steven Rostedt lkml 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest8 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8ftrace: Fix global function tracers that are not recursion safekernel/trace/ftrace.c+16 -20 replies
2/8ftrace: Fix function tracing recursion self testkernel/trace/trace_selftest.c+2 -10 replies
3/8ftrace: Optimize the function tracer list loopkernel/trace/ftrace.c+26 -220 replies
4/8ftrace: Add context level recursion bit checkingkernel/trace/ftrace.c kernel/trace/trace.h+42 -100 replies
5/8tracing: Make the trace recursion bits into enumskernel/trace/trace.h+17 -130 replies
6/8tracing: Avoid unnecessary multiple recursion checkskernel/trace/ftrace.c kernel/trace/trace.h+110 -360 replies
7/8ftrace: Use only the preempt version of function tracingkernel/trace/trace_functions.c+14 -470 replies
8/8ring-buffer: User context bit recursion checkingkernel/trace/ring_buffer.c kernel/trace/trace.h+67 -310 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/8][RFC] ftrace: Optimizing the function tracer

In the past I've worked on tricks to make the function tracer a bit faster. I've lowered the overhead by 18% which is quite an improvement. Thus, instead of only taking 11x longer in the kernel, it takes 9x ;-)

Anyway, these are the latest patches to improve function tracing and are pretty much good to go mainline. I just wanted to do one last RFC post before pushing them forward.

-- Steve

These patches can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
rfc/function-preempt-only-v2

Head SHA1: bf9d25e084984439cb32c1fc7cb0f1936c95c51a

Steven Rostedt (8):
ftrace: Fix global function tracers that are not recursion safe
ftrace: Fix function tracing recursion self test
ftrace: Optimize the function tracer list loop
ftrace: Add context level recursion bit checking
tracing: Make the trace recursion bits into enums
tracing: Avoid unnecessary multiple recursion checks
ftrace: Use only the preempt version of function tracing
ring-buffer: User context bit recursion checking

----

 kernel/trace/ftrace.c          |   82 ++++++++++++++++---------
 kernel/trace/ring_buffer.c     |   85 +++++++++++++++++--------
 kernel/trace/trace.h           |  133 ++++++++++++++++++++++++++++++++++++----
 kernel/trace/trace_functions.c |   61 +++++-------------
 kernel/trace/trace_selftest.c  |    3 +-
 5 files changed, 248 insertions(+), 116 deletions(-)