linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] tracing/kprobes: Add dynamic tracepoints + instruction decoder
@ 2009-08-27  2:31 Frederic Weisbecker
  2009-08-27  2:32 ` [PATCH 01/18] x86: Instruction decoder API Frederic Weisbecker
                   ` (21 more replies)
  0 siblings, 22 replies; 89+ messages in thread
From: Frederic Weisbecker @ 2009-08-27  2:31 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: LKML, Frederic Weisbecker, Masami Hiramatsu, Steven Rostedt

Ingo,

This is the kprobes tracing pile of patches. I've tested it
successfully by setting some kprobes through debugfs by hand.

It brings no known regressions.

However, the stress test provided by Masami have revealed some
unstable points. Some symbols are unsafe to probe and raise
probing recursion.

I've added a tiny patch in the series that helps identifying the
kprobe that has raised such situation.
For example it has learned me today that it's unsafe to trace
ret_from_exception() (obviously: it's on the int 3 handler path).

Anyway, we have all the tools to debug that and easily find the
fragile points to probe. It's then just a matter of investigation
and stress tests now.

And because the pile of patches becomes big enough, I've thought it
could be time to do a pull request for -tip for it to have a
private branch and get fixes over the time.

Tell me if that's a problem and we can delay the pull request until
we fix the recursive points problems.

Thanks,
Frederic.

The following changes since commit 35dce1a99d010f3d738af4ce1b9b77302fdfe69c:
  Ingo Molnar (1):
        Merge branch 'tracing/core' of git://git.kernel.org/.../frederic/random-tracing into tracing/core

are available in the git repository at:

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

Frederic Weisbecker (1):
      tracing/kprobes: Dump the culprit kprobe in case of kprobe recursion

Masami Hiramatsu (17):
      x86: Instruction decoder API
      x86: X86 instruction decoder build-time selftest
      kprobes: Checks probe address is instruction boudary on x86
      kprobes: Cleanup fix_riprel() using insn decoder on x86
      x86: Add pt_regs register and stack access APIs
      tracing: Ftrace dynamic ftrace_event_call support
      tracing: Introduce TRACE_FIELD_ZERO() macro
      tracing: Add kprobe-based event tracer
      tracing: Add kprobe-based event tracer documentation
      tracing: Kprobe-tracer supports more than 6 arguments
      tracing: Generate names for each kprobe event automatically
      tracing: Kprobe tracer assigns new event ids for each event
      tracing: Add kprobes event profiling interface
      x86: Fix x86 instruction decoder selftest to check only .text
      x86: Check awk features before generating inat-tables.c
      tracing/kprobes: Fix format typo in trace_kprobes
      tracing/kprobes: Change trace_arg to probe_arg

 Documentation/trace/kprobetrace.txt  |  148 ++++
 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/kprobes.c            |  209 +++---
 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      |  719 ++++++++++++++++++++
 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        |  113 ++++
 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                     |    7 +
 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          |  121 +++-
 kernel/trace/trace_export.c          |   34 +-
 kernel/trace/trace_kprobe.c          | 1231 ++++++++++++++++++++++++++++++++++
 kernel/trace/trace_syscalls.c        |   20 +-
 31 files changed, 3991 insertions(+), 196 deletions(-)
 create mode 100644 Documentation/trace/kprobetrace.txt
 create mode 100644 arch/x86/include/asm/inat.h
 create mode 100644 arch/x86/include/asm/inat_types.h
 create mode 100644 arch/x86/include/asm/insn.h
 create mode 100644 arch/x86/lib/inat.c
 create mode 100644 arch/x86/lib/insn.c
 create mode 100644 arch/x86/lib/x86-opcode-map.txt
 create mode 100644 arch/x86/tools/Makefile
 create mode 100644 arch/x86/tools/distill.awk
 create mode 100644 arch/x86/tools/gen-insn-attr-x86.awk
 create mode 100644 arch/x86/tools/test_get_len.c
 create mode 100644 kernel/trace/trace_kprobe.c

^ permalink raw reply	[flat|nested] 89+ messages in thread

end of thread, other threads:[~2009-10-17  9:59 UTC | newest]

Thread overview: 89+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-27  2:31 [GIT PULL] tracing/kprobes: Add dynamic tracepoints + instruction decoder Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 01/18] x86: Instruction decoder API Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 02/18] x86: X86 instruction decoder build-time selftest Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 03/18] kprobes: Checks probe address is instruction boudary on x86 Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 04/18] kprobes: Cleanup fix_riprel() using insn decoder " Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 05/18] x86: Add pt_regs register and stack access APIs Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 06/18] tracing: Ftrace dynamic ftrace_event_call support Frederic Weisbecker
2009-08-27  2:47   ` Li Zefan
2009-08-27  2:56     ` Frederic Weisbecker
2009-08-27 15:07       ` Masami Hiramatsu
2009-08-27  2:32 ` [PATCH 07/18] tracing: Introduce TRACE_FIELD_ZERO() macro Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 08/18] tracing: Add kprobe-based event tracer Frederic Weisbecker
2009-08-27  7:31   ` Ingo Molnar
2009-08-27 13:48     ` Frederic Weisbecker
2009-08-27 15:38       ` Masami Hiramatsu
2009-08-27  2:32 ` [PATCH 09/18] tracing: Add kprobe-based event tracer documentation Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 10/18] tracing: Kprobe-tracer supports more than 6 arguments Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 11/18] tracing: Generate names for each kprobe event automatically Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 12/18] tracing: Kprobe tracer assigns new event ids for each event Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 13/18] tracing: Add kprobes event profiling interface Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 14/18] x86: Fix x86 instruction decoder selftest to check only .text Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 15/18] x86: Check awk features before generating inat-tables.c Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 16/18] tracing/kprobes: Fix format typo in trace_kprobes Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 17/18] tracing/kprobes: Change trace_arg to probe_arg Frederic Weisbecker
2009-08-27  2:32 ` [PATCH 18/18] tracing/kprobes: Dump the culprit kprobe in case of kprobe recursion Frederic Weisbecker
2009-08-27 15:30   ` Masami Hiramatsu
2009-08-27 15:34     ` Frederic Weisbecker
2009-08-27 15:52       ` Masami Hiramatsu
2009-08-27 16:30         ` Frederic Weisbecker
2009-08-27 16:45           ` Masami Hiramatsu
2009-08-27 16:45             ` Frederic Weisbecker
2009-08-27  3:34 ` [GIT PULL v2] tracing/kprobes: v1 + two fixes Frederic Weisbecker
2009-08-27 15:24   ` Ingo Molnar
2009-08-27 15:40     ` Frederic Weisbecker
2009-08-27 15:59     ` Frederic Weisbecker
2009-08-27 16:17       ` [PATCH] tracing: Undef TRACE_EVENT_FN between trace events headers inclusion Frederic Weisbecker
2009-08-27 16:36         ` [tip:tracing/core] " tip-bot for Frederic Weisbecker
2009-08-27 16:12     ` [GIT PULL v2] tracing/kprobes: v1 + two fixes Masami Hiramatsu
2009-08-27 16:35       ` Ingo Molnar
2009-08-27 16:52         ` Masami Hiramatsu
2009-08-29 11:02           ` Ingo Molnar
2009-08-28 22:13         ` [PATCH -tip tracing/kprobes 1/2] x86: Allow x86-32 instruction decoder selftest on x86-64 Masami Hiramatsu
2009-08-30  1:35           ` Frederic Weisbecker
2009-10-17  9:58           ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-08-28 22:13         ` [PATCH -tip tracing/kprobes 2/2] x86: Remove unused config macros from instruction decoder selftest Masami Hiramatsu
2009-10-17  9:58           ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-08-27 15:26   ` [GIT PULL v2] tracing/kprobes: v1 + two fixes Ingo Molnar
2009-09-16  5:30     ` Frederic Weisbecker
2009-08-27  3:34 ` [PATCH 19/18] tracing: Restore the const qualifier for field names and types definition Frederic Weisbecker
2009-08-27 15:07   ` Masami Hiramatsu
2009-08-27  3:34 ` [PATCH 20/18] tracing: Remove unneeded pointer casts Frederic Weisbecker
2009-08-27 15:08   ` Masami Hiramatsu
2009-08-27 15:00 ` [GIT PULL] tracing/kprobes: Add dynamic tracepoints + instruction decoder Masami Hiramatsu
2009-08-27 15:25   ` Frederic Weisbecker
2009-08-27 17:22     ` [PATCH -tip tracing/kprobes 1/6] kprobes/x86: Call BUG() when reentering probe into KPROBES_HIT_SS Masami Hiramatsu
2009-08-28  4:38       ` Ananth N Mavinakayanahalli
2009-08-30  1:25       ` Frederic Weisbecker
2009-10-17  9:56       ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-08-27 17:23     ` [PATCH -tip tracing/kprobes 2/6] kprobes/x86-64: Allow to reenter probe on post_handler Masami Hiramatsu
2009-08-28  4:39       ` Ananth N Mavinakayanahalli
2009-10-17  9:57       ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-08-27 17:23     ` [PATCH -tip tracing/kprobes 3/6] kprobes/x86: Fix to add __kprobes to in-kernel fault handing functions Masami Hiramatsu
2009-08-28  4:40       ` Ananth N Mavinakayanahalli
2009-08-30  0:50       ` Frederic Weisbecker
2009-08-30  2:43         ` Masami Hiramatsu
2009-08-30  0:53       ` Frederic Weisbecker
2009-08-30  2:49         ` Masami Hiramatsu
2009-08-30 16:09           ` Frederic Weisbecker
2009-08-31  4:00             ` Masami Hiramatsu
2009-09-01 20:09               ` Masami Hiramatsu
2009-09-02 12:58             ` Masami Hiramatsu
2009-09-03  5:46               ` Frederic Weisbecker
2009-09-04 19:06               ` Frederic Weisbecker
2009-09-04 22:29                 ` Masami Hiramatsu
2009-09-08 16:32                 ` [PATCH tracing/kprobes] x86: Add MMX support for instruction decoder Masami Hiramatsu
2009-09-10 22:57                   ` Frederic Weisbecker
2009-10-17  9:58                   ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-09-08 16:54           ` [RFC PATCH tracing/kprobes] kprobes: Call vmalloc_sync_all() for avoiding in-kernel paging on kprobes Masami Hiramatsu
     [not found]             ` <20090908165438.24437.40931.stgit@dhcp-100-2-132.bos.redhat .com>
2009-09-08 17:03               ` system hang - I suspect a sata problem - 2.6.30.5 debug kernel jeffunit
2009-10-17  9:57       ` [tip:perf/probes] kprobes/x86: Fix to add __kprobes to in-kernel fault handing functions tip-bot for Masami Hiramatsu
2009-08-27 17:23     ` [PATCH -tip tracing/kprobes 4/6] kprobes: Fix to add __kprobes to notify_die Masami Hiramatsu
2009-08-28  4:41       ` Ananth N Mavinakayanahalli
2009-10-17  9:57       ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-08-27 17:23     ` [PATCH -tip tracing/kprobes 5/6] kprobes/x86-64: Fix to move common_interrupt to .kprobes.text Masami Hiramatsu
2009-10-17  9:57       ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-08-27 17:23     ` [PATCH -tip tracing/kprobes 6/6] kprobes: Prohibit to probe native_get_debugreg Masami Hiramatsu
2009-08-28  4:41       ` Ananth N Mavinakayanahalli
2009-10-17  9:57       ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-08-27 17:32     ` [GIT PULL] tracing/kprobes: Add dynamic tracepoints + instruction decoder Masami Hiramatsu

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).