tracing: Allow to disable cmdline recording
authorLi Zefan <lizf@cn.fujitsu.com>
Fri, 2 Jul 2010 03:07:32 +0000 (11:07 +0800)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 21 Jul 2010 01:52:33 +0000 (21:52 -0400)
commite870e9a1240bcef1157ffaaf71dac63362e71904
treeb8f57a68ff45b35dab8cdfa474e17622d275bdc6
parentcc5edb0eb9ce892b530e34a5d110382483587942
tracing: Allow to disable cmdline recording

We found that even enabling a single trace event that will rarely be
triggered can add big overhead to context switch.

(lmbench context switch test)
 -------------------------------------------------
 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
 ctxsw  ctxsw  ctxsw ctxsw  ctxsw   ctxsw   ctxsw
------ ------ ------ ------ ------ ------- -------
  2.19   2.3   2.21   2.56   2.13     2.54    2.07
  2.39   2.51  2.35   2.75   2.27     2.81    2.24

The overhead is 6% ~ 11%.

It's because when a trace event is enabled 3 tracepoints (sched_switch,
sched_wakeup, sched_wakeup_new) will be activated to map pid to cmdname.

We'd like to avoid this overhead, so add a trace option '(no)record-cmd'
to allow to disable cmdline recording.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
LKML-Reference: <4C2D57F4.2050204@cn.fujitsu.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace_event.h
kernel/trace/trace.c
kernel/trace/trace.h
kernel/trace/trace_events.c