Skip to content

add syscall tracepoints V3

Jason Baron lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest12 patches 74 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/12map syscall name to numberarch/x86/kernel/ftrace.c+16 -00 replies
2/12call arch_init_ftrace_syscalls at bootarch/x86/kernel/ftrace.c include/trace/syscall.h kernel/trace/trace_syscalls.c+4 -130 replies
3/12add DECLARE_TRACE_WITH_CALLBACK() macroinclude/linux/tracepoint.h+27 -40 replies
4/12add syscall tracepointsarch/x86/kernel/ptrace.c include/trace/syscall.h kernel/tracepoint.c+62 -20 replies
5/12update FTRACE_SYSCALL_MAXarch/x86/include/asm/ftrace.h+2 -210 replies
6/12trace_event - raw_init bailoutkernel/trace/trace_events.c+19 -100 replies
7/12add ftrace_event_call void * 'data' fieldinclude/linux/ftrace_event.h include/trace/ftrace.h kernel/trace/trace_events.c+7 -64 replies
8/12add trace events for each syscall entry/exitinclude/linux/syscalls.h include/trace/syscall.h kernel/trace/trace_syscalls.c+159 -10349 replies
9/12add support traceopint idsarch/x86/kernel/ftrace.c include/linux/syscalls.h include/trace/syscall.h +2 more+52 -201 reply
10/12add perf counter supportinclude/linux/perf_counter.h include/linux/syscalls.h include/trace/syscall.h +1 more+181 -13 replies
11/12add more namespace area to 'perf list' outputtools/perf/util/parse-events.c+4 -40 replies
12/12convert x86_64 mmap and uname to use DEFINE_SYSCALLarch/x86/kernel/sys_x86_64.c+4 -40 replies

Reviews trailers per patch

1 of 12 patches has a Reviewed-by or Acked-by.

PatchFrederic WeisbeckerHeiko Carstens
1/12
2/12
3/12
4/12
5/12
6/12
7/12
8/12A-b A-b A-b
9/12
10/12
11/12
12/12

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/12] add syscall tracepoints V3

hi,

The following is an implementation of Frederic's syscall tracer on top of tracepoints. It adds the ability to toggle the entry/exit of each syscall via the standard events/syscalls/syscall_blah/enable interface. The implementation is done by adding 2 tracepoints. One on entry and one for exit.

The patchset now also addes 'perf' tool support for counting the number of syscall events. For example, I did a simple strace of 'cat'ing' a file, and then verified that 'perf stat' gave a similar count.

For example:

# perf stat -e syscalls:sys_enter_brk -e syscalls:sys_exit_brk -e syscalls:sys_enter_mmap -e syscalls:sys_enter_mmap -e syscalls:sys_enter_access -e syscalls:sys_exit_access -e syscalls:sys_enter_close -e syscalls:sys_exit_close -e syscalls:sys_enter_read -e syscalls:sys_exit_read -e syscalls:sys_enter_write -e syscalls:sys_exit_write -e syscalls:sys_enter_mprotect -e syscalls:sys_exit_mprotect -e syscalls:sys_enter_open -e syscalls:sys_exit_open -e syscalls:sys_enter_newfstat -e syscalls:sys_exit_newfstat -e syscalls:sys_enter_exit_group -e syscalls:sys_exit_exit_group cat /tmp/foo

Performance counter stats for 'cat /tmp/foo':

              3  syscalls:sys_enter_brk  
              3  syscalls:sys_exit_brk   
              9  syscalls:sys_enter_mmap 
              9  syscalls:sys_enter_mmap 
              1  syscalls:sys_enter_access
              1  syscalls:sys_exit_access
              6  syscalls:sys_enter_close
              6  syscalls:sys_exit_close 
              3  syscalls:sys_enter_read 
              3  syscalls:sys_exit_read  
              1  syscalls:sys_enter_write
              1  syscalls:sys_exit_write 
              3  syscalls:sys_enter_mprotect
              3  syscalls:sys_exit_mprotect
              4  syscalls:sys_enter_open 
              4  syscalls:sys_exit_open  
              5  syscalls:sys_enter_newfstat
              5  syscalls:sys_exit_newfstat
              1  syscalls:sys_enter_exit_group
              0  syscalls:sys_exit_exit_group
    0.000864861  seconds time elapsed

thanks,

-Jason

 arch/x86/include/asm/ftrace.h  |    4 +-
 arch/x86/kernel/ftrace.c       |   41 ++++--
 arch/x86/kernel/ptrace.c       |    6 +-
 arch/x86/kernel/sys_x86_64.c   |    8 +-
 include/linux/ftrace_event.h   |    5 +-
 include/linux/perf_counter.h   |    2 +
 include/linux/syscalls.h       |  125 ++++++++++++++++-
 include/linux/tracepoint.h     |   31 ++++-
 include/trace/ftrace.h         |    4 +-
 include/trace/syscall.h        |   54 ++++++--
 kernel/trace/trace.h           |    6 -
 kernel/trace/trace_events.c    |   33 +++--
 kernel/trace/trace_syscalls.c  |  311 ++++++++++++++++++++++++++++------------
 kernel/tracepoint.c            |   38 +++++
 tools/perf/util/parse-events.c |    8 +-
 15 files changed, 522 insertions(+), 154 deletions(-)