lkml.org 
[lkml]   [2009]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/7] add syscall tracepoints

* Jason Baron <jbaron@redhat.com> wrote:

> 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.
>
> This implementation required a few 'core' api changes. I've added
> 'DECLARE_TRACE_REG()' macro which takes a register and and an
> unregister function as arguments. This allowed me to toggle the
> ftrace tif flag when the first tracepoint callback is added and
> the last is removed. Current callers of 'DECLARE_TRACE()' are not
> impacted.
>
> Another change was to call arch_init_ftrace_syscalls via an
> 'arch_initall'. In this implmentation I needed to access the
> syscalls_metadata structure at runtime in order to determine which
> syscalls were 'traceable'. Although the implementation uses
> SYSCALL_DEFINE() to set up the the trace events, for some reason
> at runtime there is no syscalls_metadata, associated with some of
> the SYSCALL_DEFINE() calls. I'm not quite sure why that is.
> However, by calling arch_init_ftrace_syscalls() at boot I can make
> sure the lists are in sync.
>
> thanks,
>
> -Jason
>
>
> arch/x86/include/asm/ftrace.h | 4 +-
> arch/x86/kernel/ftrace.c | 24 +++++-
> arch/x86/kernel/ptrace.c | 6 +-
> include/linux/syscalls.h | 63 +++++++++++++++
> include/linux/tracepoint.h | 27 ++++++-
> include/trace/syscall.h | 37 +++++++---
> kernel/trace/trace_events.c | 29 +++++---
> kernel/trace/trace_syscalls.c | 172 +++++++++++++++++++----------------------
> kernel/tracepoint.c | 38 +++++++++
> 9 files changed, 278 insertions(+), 122 deletions(-)

This looks far nicer structurally. Steve, Frederic, what's your take
on this series?

Ingo


\
 
 \ /
  Last update: 2009-06-16 21:35    [W:0.155 / U:19.016 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site