tracing/syscalls: core infrastructure for syscalls tracing, enhancements
authorFrederic Weisbecker <fweisbec@gmail.com>
Fri, 13 Mar 2009 14:42:11 +0000 (15:42 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 13 Mar 2009 15:57:42 +0000 (16:57 +0100)
commitbed1ffca022cc876fb83161d26670e9b5d3cf36b
treea896c79e9ea1af11f992826f1de7e2ece52fbe33
parentf58ba100678f421bdcb000a3c71793f432dfab93
tracing/syscalls: core infrastructure for syscalls tracing, enhancements

Impact: new feature

This adds the generic support for syscalls tracing. This is
currently exploited through a devoted tracer but other tracing
engines can use it. (They just have to play with
{start,stop}_ftrace_syscalls() and use the display callbacks
unless they want to override them.)

The syscalls prototypes definitions are abused here to steal
some metadata informations:

- syscall name, param types, param names, number of params

The syscall addr is not directly saved during this definition
because we don't know if its prototype is available in the
namespace. But we don't really need it. The arch has just to
build a function able to resolve the syscall number to its
metadata struct.

The current tracer prints the syscall names, parameters names
and values (and their types optionally). Currently the value is
a raw hex but higher level values diplaying is on my TODO list.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1236955332-10133-2-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
include/asm-generic/vmlinux.lds.h
include/linux/ftrace.h
include/linux/syscalls.h
kernel/trace/trace.h
kernel/trace/trace_syscalls.c