• Zhaolei's avatar
    ftrace: Add task_comm support for trace_event · b11c53e1
    Zhaolei authored
    If we enable a trace event alone without any tracer running (such as
    function tracer, sched switch tracer, etc...) it can't output enough
    task command information.
    
    We need to use the tracing_{start/stop}_cmdline_record() helpers
    which are designed to keep track of cmdlines for any tasks that
    were scheduled during the tracing.
    
    Before this patch:
     # echo 1 > debugfs/tracing/events/sched/sched_switch/enable
     # cat debugfs/tracing/trace
     # tracer: nop
     #
     #           TASK-PID    CPU#    TIMESTAMP  FUNCTION
     #              | |       |          |         |
                <...>-2289  [000] 526276.724790: sched_switch: task bash:2289 [120] ==> sshd:2287 [120]
                <...>-2287  [000] 526276.725231: sched_switch: task sshd:2287 [120] ==> bash:2289 [120]
                <...>-2289  [000] 526276.725452: sched_switch: task bash:2289 [120] ==> sshd:2287 [120]
                <...>-2287  [000] 526276.727181: sched_switch: task sshd:2287 [120] ==> swapper:0 [140]
               <idle>-0     [000] 526277.032734: sched_switch: task swapper:0 [140] ==> events/0:5 [115]
                <...>-5     [000] 526277.032782: sched_switch: task events/0:5 [115] ==> swapper:0 [140]
     ...
    
    After this patch:
     # tracer: nop
     #
     #           TASK-PID    CPU#    TIMESTAMP  FUNCTION
     #              | |       |          |         |
                 bash-2269  [000] 527347.989229: sched_switch: task bash:2269 [120] ==> sshd:2267 [120]
                 sshd-2267  [000] 527347.990960: sched_switch: task sshd:2267 [120] ==> bash:2269 [120]
                 bash-2269  [000] 527347.991143: sched_switch: task bash:2269 [120] ==> sshd:2267 [120]
                 sshd-2267  [000] 527347.992959: sched_switch: task sshd:2267 [120] ==> swapper:0 [140]
               <idle>-0     [000] 527348.531989: sched_switch: task swapper:0 [140] ==> events/0:5 [115]
             events/0-5     [000] 527348.532115: sched_switch: task events/0:5 [115] ==> swapper:0 [140]
     ...
    
    Changelog:
    v1->v2: Update Kconfig to select CONTEXT_SWITCH_TRACER in
            ENABLE_EVENT_TRACING
    v2->v3: v2 can solve problem that was caused by config EVENT_TRACING
            alone, but when CONFIG_FTRACE is off and CONFIG_TRACING is
            selected by other config, compile fail happened again.
            This version solves it.
    
    [ Impact: fix incomplete output of event tracing ]
    Signed-off-by: default avatarZhao Lei <zhaolei@cn.fujitsu.com>
    Cc: Tom Zanussi <tzanussi@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    LKML-Reference: <4A14FDFE.2080402@cn.fujitsu.com>
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    b11c53e1
trace_events.c 28.3 KB