[RFC Patch 0/5] PERF-HW_BKPT: Enhance perf-events to profilememory accesses using hw-breakpoints - ver III

From: K.Prasad
Date: Thu Oct 29 2009 - 18:20:52 EST


Hi All,
Please find version II of the patchset that enables perf-events to
place hw-breakpoints over kernel symbols (along with requisite enhancements to
the hw-breakpoint layer).

The patches have been tested on an x86 box running -tip tree (commit
d80c46df1d0e6387f3e0a49d5ffba2669eb76d71) and is intended for -tip tree
submission if there are no further comments.

Changelog version II
---------------------
Version I: http://lkml.org/lkml/2009/10/26/461
Version II: http://lkml.org/lkml/2009/10/28/208

- Renamed the event names to "memory-write"/"w" and "memory-readwrite"/"rw".
- Kernel symbolnames will accompany event-names in perf statistics.
- A few more code comments.

An edited log of 'perf stat' and 'perf record' output is shown below for your
reference.

Thanks,
K.Prasad

Screen logs
------------
#
# perf stat -v -i -e rw:pid_max -e w:jiffies make kernel/futex.o
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CALL scripts/checksyscalls.sh
CC kernel/futex.o
memory-readwrite:pid_max: 68 301693959 301693959
memory-write:jiffies: 195 301693959 301693959

Performance counter stats for 'make kernel/futex.o':

68 memory-readwrite:pid_max # 0.000 M/sec
195 memory-write:jiffies # 0.000 M/sec

16.345075062 seconds time elapsed

#
#
# perf record -v -i -a -e rw:pid_max top

<Ran 'top' for about 10 seconds>

[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.076 MB perf.data (~3306 samples) ]
#
# perf report -i perf.data
No symbols found in /sbin/init, maybe install a debug package?
<snipped>
# Samples: 306
#
# Overhead Command Shared Object Symbol
# ........ ............... ............. ......
#
27.45% yum [kernel] [k] alloc_pid
22.88% sh [kernel] [k] alloc_pid
22.88% powertop [kernel] [k] alloc_pid
15.03% bash [kernel] [k] alloc_pid
10.46% khelper [kernel] [k] alloc_pid
0.65% top [kernel] [k] do_proc_dointvec_minmax_conv
0.65% perf [kernel] [k] alloc_pid
#
# (For a higher level overview, try: perf report --sort comm,dso)
#
#

--
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/