Skip to contentSkip to conversation

ftrace for MIPS

PATCH New Wu Zhangjin 1 participant 1 message Oct 21, 2009 MIPS

lore
Share & tools
lore
#0 lore raw

cover ftrace for MIPS

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