From: Wu Zhangjin <wuzhangjin@gmail.com>
To: linux-mips@linux-mips.org, linux-kernel@vger.kernel.org
Cc: Wang Liming <liming.wang@windriver.com>,
Wu Zhangjin <wuzj@lemote.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ralf Baechle <ralf@linux-mips.org>,
Thomas Gleixner <tglx@linutronix.de>,
Nicholas Mc Guire <der.herr@hofr.at>, Ingo Molnar <mingo@elte.hu>
Subject: [PATCH v3] mips-specific ftrace support
Date: Sun, 14 Jun 2009 23:50:16 +0800 [thread overview]
Message-ID: <cover.1244994151.git.wuzj@lemote.com> (raw)
From: Wu Zhangjin <wuzj@lemote.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 timestamp getting function are arch-dependent, lots of
the tracers are arch-dependent. the arch-dependent part is that: sched_clock().
the original sched_clock() in mips is jiffes based, only give 10ms precision in
1000HZ, which is not enough for ftrace. to get high-precise timestamp, we must
implement a new native_sched_clock() via reading the MIPS clock counter, but
since it is only 32bit long, so, overflow should be handled carefully.
this -v3 patch series is based on the -v2 patch series and incorporates the
feedback from Steven Rostedt and Thomas Gleixner.
!!NOTE!!
this -v3 not support modules yet, really hope this can be fixed in -v4 patch.
read the following document, and play with it:
Documentation/trace/ftrace.txt
Wu Zhangjin (7):
mips static function tracer support
add an endian argument to scripts/recordmcount.pl
mips dynamic function tracer support
filter local function prefixed by $L
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 | 12 ++
arch/mips/kernel/csrc-r4k.c | 2 +-
arch/mips/kernel/entry.S | 2 +-
arch/mips/kernel/ftrace.c | 344 +++++++++++++++++++++++++++++++++++
arch/mips/kernel/ftrace_clock.c | 71 +++++++
arch/mips/kernel/mcount.S | 184 +++++++++++++++++++
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/trace_clock.c | 2 +-
scripts/Makefile.build | 1 +
scripts/recordmcount.pl | 30 +++-
20 files changed, 799 insertions(+), 11 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
next reply other threads:[~2009-06-14 15:51 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-14 15:50 Wu Zhangjin [this message]
2009-06-14 15:51 ` [PATCH v3] mips static function tracer support Wu Zhangjin
2009-06-14 15:52 ` [PATCH v3] add an endian argument to scripts/recordmcount.pl Wu Zhangjin
2009-06-14 15:52 ` [PATCH v3] mips dynamic function tracer support Wu Zhangjin
2009-06-14 15:52 ` [PATCH v3] filter local function prefixed by $L Wu Zhangjin
2009-06-15 15:59 ` David Daney
2009-06-15 16:30 ` Steven Rostedt
2009-06-15 18:48 ` Wu Zhangjin
2009-06-14 15:53 ` [PATCH v3] mips function graph tracer support Wu Zhangjin
2009-06-14 15:53 ` [PATCH v3] mips specific clock function to get precise timestamp Wu Zhangjin
2009-06-14 15:53 ` [PATCH v3] mips specific system call tracer Wu Zhangjin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1244994151.git.wuzj@lemote.com \
--to=wuzhangjin@gmail.com \
--cc=der.herr@hofr.at \
--cc=liming.wang@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=mingo@elte.hu \
--cc=ralf@linux-mips.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=wuzj@lemote.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).