lkml.org 
[lkml]   [2009]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC][PATCH 0/5] hw-breakpoints: Make the API generic + support for perfcounters
Date
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(-)



\
 
 \ /
  Last update: 2009-07-20 19:11    [W:2.123 / U:0.956 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site