public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 0/5] hw-breakpoints: Make the API generic + support for perfcounters
@ 2009-07-20 17:08 Frederic Weisbecker
  2009-07-20 17:08 ` [RFC][PATCH 1/5] hw-breakpoints: Make kernel breakpoints API truly generic Frederic Weisbecker
                   ` (4 more replies)
  0 siblings, 5 replies; 46+ messages in thread
From: Frederic Weisbecker @ 2009-07-20 17:08 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: LKML, Frederic Weisbecker, Steven Rostedt, Thomas Gleixner,
	Mike Galbraith, Peter Zijlstra, Paul Mackerras,
	Arnaldo Carvalho de Melo, Lai Jiangshan, Anton Blanchard,
	Li Zefan, Zhaolei, KOSAKI Motohiro, Mathieu Desnoyers, K . Prasad,
	Alan Stern

Hi,

This patchset aims to make the hardware breakpoint API generic and
also to provide the support for hardware breakpoints from perfcounters.

The hardware breakpoint API changes are a first shot of idea.

The support for perf counter has strange effects. It looks like only
a part of the breakpoint events are actually recorded. The triggered callback
receives well the events but if there are only few of them, none is passed
in userspace (or userspace ignores them, dunno). Once I have some time, I'll
take a deeper look inside the perf mmap syscall or whatever could be
the origin.

Thanks.

Example which traces the BKL accesses by stressing reiserfs:

bkl=0x$(cat ../../System.map | grep kernel_flag | cut -d" " -f 1)
./perf record -f -g -e 5:$bkl -- dbench -t 20 20
./perf report -g -s s
 # Samples: 36
 #
 # Overhead  Symbol
 # ........  ......
 #
    83.33%  [k] lock_kernel
                |
                |--51.72%-- __pwrite64
                |
                |--27.59%-- 0x7f9d83a17b15
                |
                |--13.79%-- __open
                |
                 --10.34%-- unlink

    16.67%  [k] unlock_kernel
                |
                |--80.00%-- 0x7f9d83a17b15
                |
                |--20.00%-- unlink
                |
                 --20.00%-- __pwrite64

Frederic Weisbecker (5):
  hw-breakpoints: Make kernel breakpoints API truly generic
  hw-breakpoints: Pull up the target symbol in a generic field
  hw-breakpoints: Make user breakpoints API truly generic
  perfcounter: Grow the event number to 64 bits
  perfcounter: Add support for kernel hardware breakpoints

 arch/x86/include/asm/hw_breakpoint.h    |    9 ++-
 arch/x86/kernel/hw_breakpoint.c         |   91 +++++++++++-----
 arch/x86/kernel/ptrace.c                |   21 ++--
 include/asm-generic/hw_breakpoint.h     |  116 ++++++++-------------
 include/linux/perf_counter.h            |    1 +
 kernel/hw_breakpoint.c                  |  173 ++++++++++++++++++++++++++++---
 kernel/perf_counter.c                   |   41 +++++++-
 kernel/trace/trace.h                    |    5 +-
 kernel/trace/trace_ksym.c               |   67 ++++++------
 kernel/trace/trace_selftest.c           |    2 +-
 samples/hw_breakpoint/data_breakpoint.c |   10 +--
 11 files changed, 368 insertions(+), 168 deletions(-)


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

end of thread, other threads:[~2009-07-29 14:58 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-20 17:08 [RFC][PATCH 0/5] hw-breakpoints: Make the API generic + support for perfcounters Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 1/5] hw-breakpoints: Make kernel breakpoints API truly generic Frederic Weisbecker
2009-07-20 17:27   ` Mathieu Desnoyers
2009-07-25  2:37     ` Frederic Weisbecker
2009-07-25 15:38       ` Mathieu Desnoyers
2009-07-28  1:35         ` Frederic Weisbecker
2009-07-21 11:15   ` K.Prasad
2009-07-25  2:56     ` Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 2/5] hw-breakpoints: Pull up the target symbol in a generic field Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 3/5] hw-breakpoints: Make user breakpoints API truly generic Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 4/5] perfcounter: Grow the event number to 64 bits Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 5/5] perfcounter: Add support for kernel hardware breakpoints Frederic Weisbecker
2009-07-20 17:38   ` Peter Zijlstra
2009-07-21  7:11     ` Frédéric Weisbecker
2009-07-20 17:38   ` Peter Zijlstra
2009-07-21  7:19     ` Frédéric Weisbecker
2009-07-20 17:38   ` Peter Zijlstra
2009-07-20 21:22     ` Frédéric Weisbecker
2009-07-24 20:20       ` Masami Hiramatsu
2009-07-23 13:08   ` Peter Zijlstra
2009-07-23 17:45     ` Peter Zijlstra
2009-07-23 19:56       ` Alan Stern
2009-07-24 14:02     ` Frédéric Weisbecker
2009-07-24 14:26       ` Peter Zijlstra
2009-07-24 17:47         ` Frederic Weisbecker
2009-07-25 10:56           ` Peter Zijlstra
2009-07-25 14:19             ` Frederic Weisbecker
2009-07-25 15:51               ` Mathieu Desnoyers
2009-07-25 16:27                 ` Peter Zijlstra
2009-07-25 16:22               ` Peter Zijlstra
2009-07-25 23:57                 ` K.Prasad
2009-07-27  8:53                   ` Peter Zijlstra
2009-07-28  1:03                     ` Frederic Weisbecker
2009-07-28  7:24                       ` Peter Zijlstra
2009-07-28 14:04                         ` Mathieu Desnoyers
2009-07-28 14:42                           ` Peter Zijlstra
2009-07-29  0:36                         ` Frederic Weisbecker
2009-07-29  8:28                           ` Peter Zijlstra
2009-07-29 14:03                             ` Frederic Weisbecker
2009-07-28 16:12                     ` K.Prasad
2009-07-28 16:41                       ` Peter Zijlstra
2009-07-29  6:37                         ` K.Prasad
2009-07-29  9:22                           ` Peter Zijlstra
2009-07-29 14:57                             ` Arnaldo Carvalho de Melo
2009-07-28  0:18                 ` Frederic Weisbecker
2009-07-28  7:26                   ` Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox