This patch add basic ftrace support for MIPS, it is on the -v4 revision. which
incorporates the feedbacks from Steven, Ralf, Nicholas, Thomas, Américo Wang,
Zhang Le and Sergei Shtylyov. thanks goes to them!
It includes the following parts:
1. mips specific high precision of trace_clock_local() support
It is based on the clock counter register, and can provide us precision
timestamp. the old one is jiffies based, only provide ms precision.
2. mips specific static, dynamic, graph function tracer support
all of them support 32bit/64bit kernel, but not support modules yet(Steven will
help to fix this part! thanks goes to him). but if you want to have a quick try
on using module with static function tracer, you just need to add -mlong-calls
to KBUILD_CFLAGS.
All of the latest upgrade will be put into this git repo.
git://dev.lemote.com/rt4ls.git linux-mips/dev/ftrace-upstream
Welcome to play with it and give feedback, thanks!
Regards,
Wu Zhangjin
Wu Zhangjin (9):
tracing: convert trace_clock_local() as weak function
MIPS: add mips_timecounter_read() to get high precision timestamp
tracing: add MIPS specific trace_clock_local()
tracing: add static function tracer support for MIPS
tracing: enable HAVE_FUNCTION_TRACE_MCOUNT_TEST for MIPS
tracing: add an endian argument to scripts/recordmcount.pl
tracing: add dynamic function tracer support for MIPS
tracing: not trace mips_timecounter_init() in MIPS
tracing: add function graph tracer support for MIPS
arch/mips/Kconfig | 5 +
arch/mips/Makefile | 2 +
arch/mips/include/asm/ftrace.h | 35 +++++-
arch/mips/include/asm/time.h | 19 +++
arch/mips/kernel/Makefile | 9 ++
arch/mips/kernel/csrc-r4k.c | 41 ++++++
arch/mips/kernel/ftrace.c | 299 ++++++++++++++++++++++++++++++++++++++++
arch/mips/kernel/mcount.S | 182 ++++++++++++++++++++++++
arch/mips/kernel/mips_ksyms.c | 5 +
arch/mips/kernel/time.c | 2 +
arch/mips/kernel/trace_clock.c | 37 +++++
arch/mips/kernel/vmlinux.lds.S | 1 +
include/linux/clocksource.h | 2 +-
kernel/time/clocksource.c | 4 +-
kernel/trace/trace_clock.c | 2 +-
scripts/Makefile.build | 1 +
scripts/recordmcount.pl | 28 ++++-
17 files changed, 666 insertions(+), 8 deletions(-)
create mode 100644 arch/mips/kernel/ftrace.c
create mode 100644 arch/mips/kernel/mcount.S
create mode 100644 arch/mips/kernel/trace_clock.c