[<prev] [next>] [day] [month] [year] [list]
Message-Id: <cover.1243542927.git.wuzj@lemote.com>
Date: Fri, 29 May 2009 04:46:08 +0800
From: wuzhangjin@...il.com
To: linux-mips@...ux-mips.org, linux-kernel@...r.kernel.org
Cc: Wu Zhangjin <wuzj@...ote.com>,
Steven Rostedt <rostedt@...dmis.org>,
Ralf Baechle <ralf@...ux-mips.org>,
Ingo Molnar <mingo@...e.hu>,
Andrew Morton <akpm@...ux-foundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
Nicholas Mc Guire <der.herr@...r.at>
Subject: [PATCH v1 0/5] mips-specific ftrace support
From: Wu Zhangjin <wuzj@...ote.com>
ftrace is a mcount based kernel tracing tool/framework, which is originally
from RT_PREEMPT(http://rt.wiki.kernel.org).
ftrace is short for function tracer, this is its original name, but now, it
becomes a kernel tracing framework, lots of kernel tracers are built on it,
such as irqoff tracer, wakeup tracer and so forth. these tracers are
arch-independent(?), but some of them are arch-dependent, such as the original
ftrace: function tracer, and dynamic function tracer, function graph tracer,
and also, system call tracer.
here is the mips porting of these four arch-dependent tracers, it will enable
the following new kernel config options in linux-mips system.
kernel hacking --->
Tracers -->
[*] Kernel Function Tracer
[*] Kernel Function Graph Tracer
...
[*] Trace syscalls
...
[*] enable/disable ftrace tracepoints dynamically
in reality, because the high-precise timestamp getting function are
arch-dependent, lots of the tracers are arch-dependent. the arch-dependent part
is that: sched_clock, or we say ring_buffer_time_stamp or trace_clock_local
function. to get high-precise timestamp, we can read the MIPS clock counter,
but since it is only 32bit long, so, overflow should be handled carefully.
read the following document, and play with it:
Documentation/trace/ftrace.txt
Wu Zhangjin (5):
mips static function tracer support
mips dynamic function tracer support
mips function graph tracer support
mips specific clock function to get precise timestamp
mips specific system call tracer
arch/mips/Kconfig | 7 +
arch/mips/Makefile | 2 +
arch/mips/include/asm/ftrace.h | 35 ++++-
arch/mips/include/asm/ptrace.h | 2 +
arch/mips/include/asm/reg.h | 5 +
arch/mips/include/asm/syscall.h | 84 ++++++++
arch/mips/include/asm/thread_info.h | 5 +-
arch/mips/kernel/Makefile | 13 ++
arch/mips/kernel/csrc-r4k.c | 2 +-
arch/mips/kernel/entry.S | 2 +-
arch/mips/kernel/ftrace.c | 360 +++++++++++++++++++++++++++++++++++
arch/mips/kernel/ftrace_clock.c | 77 ++++++++
arch/mips/kernel/mcount.S | 185 ++++++++++++++++++
arch/mips/kernel/mips_ksyms.c | 5 +
arch/mips/kernel/ptrace.c | 14 ++-
arch/mips/kernel/scall64-o32.S | 2 +-
arch/mips/kernel/vmlinux.lds.S | 1 +
kernel/trace/ring_buffer.c | 3 +-
kernel/trace/trace_clock.c | 2 +-
scripts/Makefile.build | 1 +
scripts/recordmcount.pl | 32 +++-
21 files changed, 824 insertions(+), 15 deletions(-)
create mode 100644 arch/mips/include/asm/syscall.h
create mode 100644 arch/mips/kernel/ftrace.c
create mode 100644 arch/mips/kernel/ftrace_clock.c
create mode 100644 arch/mips/kernel/mcount.S
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists