[GIT PULL] tracing/kprobes: Kprobes core/tracing/profiling updates

From: Frederic Weisbecker
Date: Tue Sep 22 2009 - 15:38:37 EST


Hi Ingo,

Kprobes has been nicely improved lately.
The x86 instruction decoder has been fixed to support cross builds and
mmx instruction set, besides of a lot of various kprobes core fixes.

The tracing part has evolved too, we can define human names for
arguments and custom subsystem names for dynamic tracepoints.

And also kprobes profiling and raw dynamic tracepoint samples are now
supported through perf. Looks like most of the kernel parts are now
in place for a perf support. Things are going to be focused on a
perf kprobes tool to exploit that.

Concerning this git tree, based on tip:/tracing/kprobes, I had to merge
tracing/core inside few weeks ago because it needed build fixes that were
in tracing/core (the merge commit provides the details). The tree is self
contained but it's already async with recent upstream tracing updates.
It means that merging upstream tree or tracing/core inside may result in
non-trivial conflicts. I can handle them, or rebase the whole, as you prefer.

The tree can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git
tracing/kprobes

Thanks,
Frederic.

---
Ananth N Mavinakayanahalli (1):
kprobes: Prevent re-registration of the same kprobe

Frederic Weisbecker (1):
Merge commit 'tracing/core' into tracing/kprobes

Masami Hiramatsu (23):
kprobes/x86: Call BUG() when reentering probe into KPROBES_HIT_SS
kprobes/x86-64: Allow to reenter probe on post_handler
kprobes/x86: Fix to add __kprobes to in-kernel fault handing functions
kprobes: Fix to add __kprobes to notify_die
kprobes/x86-64: Fix to move common_interrupt to .kprobes.text
kprobes: Prohibit to probe native_get_debugreg
x86: Allow x86-32 instruction decoder selftest on x86-64
x86: Remove unused config macros from instruction decoder selftest
x86: Add MMX support for instruction decoder
kprobes/x86-32: Move irq-exit functions to kprobes section
x86/ptrace: Fix regs_get_argument_nth() to add correct offset
tracing/kprobes: Fix probe offset to be unsigned
tracing/kprobes: Cleanup kprobe tracer code.
tracing/kprobes: Add event profiling support
tracing/kprobes: Add argument name support
tracing/kprobes: Show event name in trace output
tracing/kprobes: Support custom subsystem for each kprobe event
tracing/kprobes: Fix trace_probe registration order
ftrace: Fix trace_add_event_call() to initialize list
ftrace: Fix trace_remove_event_call() to lock trace_event_mutex
tracing/kprobes: Add probe handler dispatcher to support perf and ftrace concurrent use
tracing/kprobes: Fix profiling alignment for perf_counter buffer
tracing/kprobes: Disable kprobe events by default after creation


The diffstat looks erroneous. I got it by taking
tip:tracing/kprobes...HEAD but excluding the tracing/core changes
after the merge commit: ^d28daf923ac5e4a0d7cecebae56f3e339189366b.
And it seems it has taken the diffstat from the beginning of kprobes
tracing development. Anyway, here it is:

Documentation/trace/kprobetrace.txt | 152 ++++
arch/x86/Kconfig.debug | 9 +
arch/x86/Makefile | 3 +
arch/x86/include/asm/inat.h | 188 +++++
arch/x86/include/asm/inat_types.h | 29 +
arch/x86/include/asm/insn.h | 143 ++++
arch/x86/include/asm/ptrace.h | 62 ++
arch/x86/kernel/entry_32.S | 24 +
arch/x86/kernel/entry_64.S | 8 +
arch/x86/kernel/kprobes.c | 234 +++----
arch/x86/kernel/ptrace.c | 112 +++
arch/x86/lib/Makefile | 13 +
arch/x86/lib/inat.c | 78 ++
arch/x86/lib/insn.c | 464 +++++++++++
arch/x86/lib/x86-opcode-map.txt | 812 ++++++++++++++++++++
arch/x86/mm/fault.c | 11 +-
arch/x86/tools/Makefile | 15 +
arch/x86/tools/distill.awk | 42 +
arch/x86/tools/gen-insn-attr-x86.awk | 334 ++++++++
arch/x86/tools/test_get_len.c | 108 +++
include/linux/ftrace_event.h | 19 +-
include/linux/kprobes.h | 2 +
include/linux/syscalls.h | 4 +-
include/trace/ftrace.h | 16 +-
include/trace/syscall.h | 11 +-
kernel/kprobes.c | 68 ++-
kernel/notifier.c | 2 +-
kernel/trace/Kconfig | 12 +
kernel/trace/Makefile | 1 +
kernel/trace/trace.h | 24 +
kernel/trace/trace_event_types.h | 4 +-
kernel/trace/trace_events.c | 125 +++-
kernel/trace/trace_export.c | 31 +-
kernel/trace/trace_kprobe.c | 1392 ++++++++++++++++++++++++++++++++++
kernel/trace/trace_syscalls.c | 16 +-
35 files changed, 4331 insertions(+), 237 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/