Jamie Iles
cc835752ae
perf tools: Allow cross compiling
...
For embedded platforms, we want to be able to build the perf
tools on a build machine to run on a different arch. This patch
allows $CROSS_COMPILE to set the cross compiler.
Additionally, if NO_LIBPERL is set, then don't use perl include
paths as they will be for the host arch.
Signed-off-by: Jamie Iles <jamie.iles@picochip.com >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1260523260-15694-2-git-send-email-jamie.iles@picochip.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-11 11:24:13 +01:00
Li Zefan
0bb38a5cde
tracing, slab: Fix no callsite ifndef CONFIG_KMEMTRACE
...
For slab, if CONFIG_KMEMTRACE and CONFIG_DEBUG_SLAB are not set,
__do_kmalloc() will not track callers:
# ./perf record -f -a -R -e kmem:kmalloc
^C
# ./perf trace
...
perf-2204 [000] 147.376774: kmalloc: call_site=c0529d2d ...
perf-2204 [000] 147.400997: kmalloc: call_site=c0529d2d ...
Xorg-1461 [001] 147.405413: kmalloc: call_site=0 ...
Xorg-1461 [001] 147.405609: kmalloc: call_site=0 ...
konsole-1776 [001] 147.405786: kmalloc: call_site=0 ...
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com >
Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi >
Cc: Christoph Lameter <cl@linux-foundation.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: linux-mm@kvack.org <linux-mm@kvack.org >
Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro >
LKML-Reference: <4B21F8AE.6020804@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-11 09:17:03 +01:00
Li Zefan
0f24f1287a
tracing, slab: Define kmem_cache_alloc_notrace ifdef CONFIG_TRACING
...
Define kmem_trace_alloc_{,node}_notrace() if CONFIG_TRACING is
enabled, otherwise perf-kmem will show wrong stats ifndef
CONFIG_KMEM_TRACE, because a kmalloc() memory allocation may
be traced by both trace_kmalloc() and trace_kmem_cache_alloc().
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com >
Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi >
Cc: Christoph Lameter <cl@linux-foundation.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: linux-mm@kvack.org <linux-mm@kvack.org >
Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro >
LKML-Reference: <4B21F89A.7000801@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-11 09:17:02 +01:00
Cyrill Gorcunov
125580380f
x86, perf events: Check if we have APIC enabled
...
Ralf Hildebrandt reported this boot warning:
| Running a vanilla 2.6.32 as Xen DomU, I'm getting:
|
| [ 0.000999] CPU: Physical Processor ID: 0
| [ 0.000999] CPU: Processor Core ID: 1
| [ 0.000999] Performance Events: AMD PMU driver.
| [ 0.000999] ------------[ cut here ]------------
| [ 0.000999] WARNING: at arch/x86/kernel/apic/apic.c:249 native_apic_write_dummy
So we need to check if APIC functionality is available, and
not just in the P6 driver but elsewhere as well.
Reported-by: Ralf Hildebrandt <Ralf.Hildebrandt@charite.de >
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091210165634.GF5086@lenovo>
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 18:00:30 +01:00
Xiao Guangrong
5e855db5d8
perf_event: Fix variable initialization in other codepaths
...
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4B20BAA6.7010609@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 17:23:02 +01:00
Ingo Molnar
7931241694
perf kmem: Fix unused argument build warning
...
Fix:
builtin-kmem.c: In function 'parse_caller_opt':
builtin-kmem.c:690: error: unused parameter 'arg'
builtin-kmem.c: In function 'parse_alloc_opt':
builtin-kmem.c:697: error: unused parameter 'arg'
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Pekka Enberg <penberg@cs.helsinki.fi >
LKML-Reference: <4B20A195.8030106@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:44:39 +01:00
Arnaldo Carvalho de Melo
716d69e4fd
perf symbols: perf_header__read_build_ids() offset'n'size should be u64
...
As off_t is a long, so breaking things on 32-bit land. Now
buildids work on 32-bit land.
[root@ana ~]# uname -a
Linux ana.ghostprotocols.net 2.6.31.6-162.fc12.i686 #1 SMP Fri
Dec 4 01:09:09 EST 2009 i686 i686 i386 GNU/Linux [root@ana ~]#
perf buildid-list | tail -5
136ee6792ba2ae57870ecd87369f4ae3194d5b27 /lib/libreadline.so.6.0
d202dcb1ad48d140065783657d37ae3f2d9ab83f /usr/bin/gdb
0a56c0c00dcc2e9e581ae9997f31957c9c4671df
/usr/lib/libdwarf.so.0.0
5f9e6ac95241cbb3227608e0ff2a2e0cbbe72439 /home/acme/bin/perf
925d19eccc2ddb1c9d74dd178a011426f1b124a8 /bin/sleep [root@ana ~]#
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frédéric Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <1260396578-19116-2-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:30:29 +01:00
Arnaldo Carvalho de Melo
8b4825bf8d
perf symbols: dsos__read_build_ids() should read both user and kernel buildids
...
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frédéric Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <1260396578-19116-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:30:28 +01:00
Li Zefan
bc3abfb1b5
perf tools: Align long options which have no short forms
...
Before:
$ ./perf kmem
...
-l, --line <num> show n lines
--raw-ip show raw ip instead of symbol
After:
$ ./perf kmem
...
-l, --line <num> show n lines
--raw-ip show raw ip instead of symbol
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com >
Cc: Pekka Enberg <penberg@cs.helsinki.fi >
LKML-Reference: <4B20A1A9.3040104@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:30:28 +01:00
Li Zefan
90b86a9f7d
perf kmem: Show usage if no option is specified
...
As Ingo suggested, make "perf kmem" show help information.
"perf kmem stat [--caller] [--alloc] .." will show memory
statistics.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com >
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi >
LKML-Reference: <4B20A195.8030106@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:30:27 +01:00
Mike Frysinger
1bbfa6f256
sched: Mark sched_clock() as notrace
...
The core ftrace code (trace_clock_local) calls sched_clock()
directly, so we don't want to recurisvely trigger the ftrace
code. Rather than update every sched_clock() definition, tag
the prototype for everyone as notrace.
Signed-off-by: Mike Frysinger <vapier@gentoo.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1260407223-10900-1-git-send-email-vapier@gentoo.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:30:27 +01:00
Frederic Weisbecker
3786310afe
perf sched: Add max delay time snapshot
...
When we have a maximum latency reported for a task, we need a
convenient way to find the matching location to the raw traces
or to perf sched map that shows where the task has been
eventually scheduled in. This gives a pointer to retrieve the
events that occured during this max latency.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Reviewed-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <1260391208-6808-1-git-send-regression-fweisbec@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:30:26 +01:00
Julia Lawall
5660ce3424
perf tools: Correct size given to memset
...
Memset should be given the size of the structure, not the size
of the pointer.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/ )
// <smpl>
@@
type T;
T *x;
expression E;
@@
memset(x, E, sizeof(
+ *
x))
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <Pine.LNX.4.64.0912092026000.1870@ask.diku.dk >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 08:30:26 +01:00
Xiao Guangrong
21140f4d33
perf_event: Fix perf_swevent_hrtimer() variable initialization
...
fix:
[<c0477471>] ? printk+0x1d/0x24
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c0149231>] warn_slowpath_common+0x71/0xd0
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c01492aa>] warn_slowpath_null+0x1a/0x20
[<c01c98f9>] perf_prepare_sample+0x269/0x280
[<c016e9f3>] ? cpu_clock+0x53/0x90
[<c01cc368>] __perf_event_overflow+0x2a8/0x300
[<c01ccc3b>] perf_event_overflow+0x1b/0x30
[<c01ccccf>] perf_swevent_hrtimer+0x7f/0x120
This is because 'data.raw' variable not initialize.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4B208E93.1010801@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-10 07:11:05 +01:00
Xiao Guangrong
c0c9e72150
perf sched: Fix for getting task's execution time
...
In current code, task's execute time is got by reading
'/proc/<pid>/sched' file, it's wrong if the task is created
by pthread_create(), because every thread task has same pid.
This way also has two demerits:
1: 'perf sched replay' can't work if the kernel is not
compiled with the 'CONFIG_SCHED_DEBUG' option
2: perf tool should depend on proc file system
So, this patch uses PERF_COUNT_SW_TASK_CLOCK to get task's
execution time instead of reading /proc file.
Changelog v2 -> v3:
use PERF_COUNT_SW_TASK_CLOCK instead of rusage() as Ingo's
suggestion
Reported-by: Torok Edwin <edwintorok@gmail.com >
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Cc: Xiao Guangrong <ericxiao.gr@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4B1F7322.80103@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 10:59:12 +01:00
Frederic Weisbecker
822a696111
tracing/kprobes: Fix field creation's bad error handling
...
When we define the common event fields in kprobe, we invert the error
handling and return immediately in case of success. Then we omit
to define specific kprobes fields (ip and nargs), and specific
kretprobes fields (func, ret_ip, nargs). And we only define them
when we fail to create common fields.
The most visible consequence is that we can't create filter for
k(ret)probes specific fields.
This patch re-invert the success/error handling to fix it.
Reported-by: Lai Jiangshan <laijs@cn.fujitsu.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Acked-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Li Zefan <lizf@cn.fujitsu.com >
LKML-Reference: <1260263815-5167-1-git-send-regression-fweisbec@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 10:32:21 +01:00
Xiao Guangrong
ec89a06fd4
perf_event: Cleanup for cpu_clock_perf_event_update()
...
Using atomic64_xchg() instead of atomic64_read() and
atomic64_set().
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Reviewed-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4B1F19DC.90204@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 09:56:27 +01:00
Xiao Guangrong
b93f7978ad
perf_event: Allocate children's perf_event_ctxp at the right time
...
In current code, children task will allocate memory for
'child->perf_event_ctxp' if the parent is counted, we can
do it only if the parent allowed children inherit it.
It can save memory and reduce overhead.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Reviewed-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4B1F19A8.5040805@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 09:56:27 +01:00
Xiao Guangrong
aa5452d70c
perf_event: Clean up __perf_event_init_context()
...
Clean up the code a bit:
- define 'perf_cpu_context' variable with 'static'
- use kzalloc() instead of kmalloc() and memset()
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Reviewed-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4B1F194D.7080306@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 09:56:27 +01:00
Frederic Weisbecker
44234adcdc
hw-breakpoints: Modify breakpoints without unregistering them
...
Currently, when ptrace needs to modify a breakpoint, like disabling
it, changing its address, type or len, it calls
modify_user_hw_breakpoint(). This latter will perform the heavy and
racy task of unregistering the old breakpoint and registering a new
one.
This is racy as someone else might steal the reserved breakpoint
slot under us, which is undesired as the breakpoint is only
supposed to be modified, sometimes in the middle of a debugging
workflow. We don't want our slot to be stolen in the middle.
So instead of unregistering/registering the breakpoint, just
disable it while we modify its breakpoint fields and re-enable it
after if necessary.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Prasad <prasad@linux.vnet.ibm.com >
LKML-Reference: <1260347148-5519-1-git-send-regression-fweisbec@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 09:48:20 +01:00
Masami Hiramatsu
c937fe20cb
perf probe: Update perf-probe document
...
Add --list and --del option descriptions to perf-probe.txt.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091208220330.10142.73296.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 07:26:54 +01:00
Masami Hiramatsu
fa28244d12
perf probe: Support --del option
...
Support perf probe --del <event> option. Currently,
perf probe can have only one event for each --del option.
If you'd like to delete several probe events, you need
to specify --del for each events.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220323.10142.62079.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 07:26:53 +01:00
Masami Hiramatsu
a7c312bed7
trace-kprobe: Support delete probe syntax
...
Support delete probe syntax. The syntax is "-:[group/]event".
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220316.10142.39192.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
2009-12-09 07:26:53 +01:00
Masami Hiramatsu
f984f03da3
perf probe: Support vmlinux on cwd by default
...
Support vmlinux on current working direcotry by default and
also update file-open messages.
Now perf probe searches ./vmlinux too.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220309.10142.33040.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 07:26:52 +01:00
Masami Hiramatsu
17f88fcd66
perf probe: Remove event suffix number _0
...
Remove event suffix number _0 if it is the first.
The first event has no suffix, and from the second,
each event has suffix number counted from _1. This
reduces typing cost :-).
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220301.10142.50031.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 07:26:52 +01:00
Masami Hiramatsu
d1bde3f755
perf probe: Fix add-probe command syntax without --add option
...
Fix add-probe command syntax without --add option.
perf-probe supports add-probe command without --add
option. But it treats each argument as an event definition.
e.g.
perf probe func arg1 arg2
is interpreted as
perf probe --add func --add arg1 --add arg2
But it may be useless in many cases.
This patch fixes this syntax to fold those arguments into
one event definition if there is no --add option. With this
change, above command is interpreted as below;
perf probe --add "func arg1 arg2"
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220254.10142.73767.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 07:26:51 +01:00
Masami Hiramatsu
a9b495b0d3
perf probe: Change probe-added message more user-friendly
...
Change probe-added message more user-friendly expression and
show usage of new events.
Before:
Added new event: p:probe/schedule_0 schedule+10 prev=%ax cpu=%bx
After:
Added new event:
probe:schedule_1 (on schedule+1 with prev cpu)
You can now use it on all perf tools, such as:
perf record -e probe:schedule_1 -a sleep 1
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220247.10142.91642.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 07:26:51 +01:00
Masami Hiramatsu
278498d438
perf probe: Change event list format
...
Change event list format for user readability. perf probe --list
shows event list in "[GROUP:EVENT] EVENT-DEFINITION" format, but
this format is different from the output of perf-list, and
EVENT-DEFINITION is a bit blunt. This patch changes the format to
more user friendly one.
Before:
[probe:schedule_0] schedule+10 prev cpu
After:
probe:schedule_0 (on schedule+10 with prev cpu)
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220240.10142.42916.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-09 07:26:50 +01:00
Stephen Rothwell
6ab8886326
perf: hw_breakpoints: Fix percpu namespace clash
...
Today's linux-next build failed with:
kernel/hw_breakpoint.c:86: error: 'task_bp_pinned' redeclared as different kind of symbol
...
Caused by commit dd17c8f729
("percpu:
remove per_cpu__ prefix") from the percpu tree interacting with
commit 56053170ea
("hw-breakpoints:
Fix task-bound breakpoint slot allocation") from the tip tree.
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au >
Acked-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Tejun Heo <tj@kernel.org >
Cc: Rusty Russell <rusty@rustcorp.com.au >
Cc: Christoph Lameter <cl@linux-foundation.org >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
LKML-Reference: <20091208182515.bb6dda4a.sfr@canb.auug.org.au >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-08 09:34:43 +01:00
Arnd Bergmann
2ff6cfd707
perf events: hw_breakpoints: Don't include asm/hw_breakpoint.h in user space
...
asm/hw_breakpoint.h is evidently a kernel internal file and
should not be included globally, not even under an #ifdef.
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org >
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Alan Stern <stern@rowland.harvard.edu >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
LKML-Reference: <200912071712.58650.arnd@arndb.de >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-08 02:58:40 +01:00
Masami Hiramatsu
d3a2dbf844
perf probe: Use pr_debug for debug message
...
Use pr_debug() for "missing vmlinux" debugging message.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091207170059.19230.51459.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 18:33:22 +01:00
Masami Hiramatsu
849884508e
perf probe: Check e_snprintf() format string
...
Check e_snprintf() format string by gcc, and fix a bug of
e_snprintf() caller.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091207170053.19230.7690.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 18:33:21 +01:00
Masami Hiramatsu
e1d2017b24
perf probe: Fix event namelist to duplicate string
...
Fix event namelist to duplicate string. Without duplicating, adding
multiple probes causes stack overwrite bug, because it reuses a
buffer on stack while the buffer is already added in the namelist.
String duplication solves this bug because only contents of the
buffer is copied to the namelist.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091207170046.19230.55557.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 18:33:21 +01:00
Juha Leppanen
d56728b8d7
perf probe: Fix strtailcmp() to compare s1and s2[0]
...
Fix strtailcmp() to compare s1[0] and s2[0]. strtailcmp() returns 0
if "a" and "b" or "a" and "ab", it's a wrong behavior. This patch
fixes it.
Signed-off-by: "Juha Leppanen" <juha_motorsportcom@luukku.com >
Acked-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Juha Leppanen <juha_motorsportcom@luukku.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091207170040.19230.37464.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 18:33:20 +01:00
Masami Hiramatsu
d32ba45503
x86 insn: Delete empty or incomplete inat-tables.c
...
Delete empty or incomplete inat-tables.c if gen-insn-attr-x86.awk
failed, because it causes a build error if user tries to build
kernel next time.
Reported-by: Arkadiusz Miskiewicz <arekm@maven.pl >
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Jens Axboe <jens.axboe@oracle.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091207170033.19230.37688.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 18:33:19 +01:00
OGAWA Hirofumi
cbe5c34c8c
x86: Compile insn.c and inat.c only for KPROBES
...
At least, insn.c and inat.c is needed for kprobe for now. So,
this compile those only if KPROBES is enabled.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp >
Cc: Masami Hiramatsu <mhiramat@redhat.com >
LKML-Reference: <878wdg8icq.fsf@devron.myhome.or.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 08:31:28 +01:00
Ulrich Drepper
180570fdb7
perf tools: Optimize parse_subsystem_tracepoint_event()
...
Uses of strcat are almost always signs that someone is too lazy
to think about the code a bit more carefully. One always has to
know about the lengths of the strings involved to avoid buffer
overflows.
This is one case where the size of the object code for me is
reduced by 38 bytes. The code should also be faster, especially
if flags is non-NULL.
Signed-off-by: Ulrich Drepper <drepper@redhat.com >
Cc: a.p.zijlstra@chello.nl
Cc: fweisbec@gmail.com
Cc: jaswinderrajput@gmail.com
Cc: paulus@samba.org
LKML-Reference: <200912061825.nB6IPUa1023306@hs20-bc2-1.build.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 08:09:29 +01:00
Tom Zanussi
67a6259ec9
perf trace/scripting: Don't display 'scripting unsupported' msg unnecessarily
...
The 'scripting unsupported' message should only be displayed
when the -s or -g options are used, and not when they aren't, as
the current code does.
Signed-off-by: Tom Zanussi <tzanussi@gmail.com >
Cc: rostedt@goodmis.org
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <1260163919-6679-3-git-send-email-tzanussi@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 08:05:07 +01:00
Ingo Molnar
11a80ddbf3
Merge branch 'perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/urgent
2009-12-07 08:03:35 +01:00
Frederic Weisbecker
56053170ea
hw-breakpoints: Fix task-bound breakpoint slot allocation
...
Whatever the context nature of a breakpoint, we always perform the
following constraint checks before allocating it a slot:
- Check the number of pinned breakpoint bound the concerned cpus
- Check the max number of task-bound breakpoints that are belonging
to a task.
- Add both and see if we have a reamining slot for the new breakpoint
This is the right thing to do when we are about to register a cpu-only
bound breakpoint. But not if we are dealing with a task bound
breakpoint. What we want in this case is:
- Check the number of pinned breakpoint bound the concerned cpus
- Check the number of breakpoints that already belong to the task
in which the breakpoint to register is bound to.
- Add both
This fixes a regression that makes the "firefox -g" command fail to
register breakpoints once we deal with a secondary thread.
Reported-by: Walt <w41ter@gmail.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Prasad <prasad@linux.vnet.ibm.com >
2009-12-07 07:05:28 +01:00
Frederic Weisbecker
ed872d09ef
hw-breakpoints: Zeroe the breakpoint attrs on initialization
...
The perf attrs used to set up breakpoint parameters are often allocated
in the stack and not zeroed out before calling hw_breakpoint_init().
Handle it from this helper to avoid random attributes set by the stack.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Prasad <prasad@linux.vnet.ibm.com >
2009-12-07 07:04:33 +01:00
Tom Zanussi
3a9a0beba2
perf trace/scripting: Fix compile error when libperl not installed
...
When I added the xs callbacks into perf, I forgot to re-check
the no-libperl case. This patch fixes the undefined reference
error for that.
Reported-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net >
Signed-off-by: Tom Zanussi <tzanussi@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <1260153712.6564.4.camel@tropicana>
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 06:31:37 +01:00
Xiao Guangrong
f48f669d42
perf_event: Eliminate raw->size
...
raw->size is not used, this patch just cleans it up.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Li Zefan <lizf@cn.fujitsu.com >
LKML-Reference: <4B1C8CC4.4050007@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 06:26:25 +01:00
Xiao Guangrong
d9541ed324
perf_event: Fix __dsos__write_buildid_table()
...
The remain buff size is 'len - pos->long_name_len - 1', not
'len - pos->long_name_len + 1'
This bug was introduced by commit 7691b1e
("perf tools: Misc small
fixes").
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Li Zefan <lizf@cn.fujitsu.com >
LKML-Reference: <4B1C7F73.80707@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 06:26:24 +01:00
Xiao Guangrong
d8bd9e0aed
perf_event: Fix raw event processing
...
We use 'data.raw_data' parameter to call process_raw_event(),
but data.raw_data buffer not include data size. it can make perf
tool crash.
This bug was introduced by commit 180f95e29a
("perf: Make common
SAMPLE_EVENT parser").
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
Cc: Pekka Enberg <penberg@cs.helsinki.fi >
Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Li Zefan <lizf@cn.fujitsu.com >
LKML-Reference: <4B1C7F45.5080105@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 06:26:24 +01:00
Xiao Guangrong
c0777c5aa8
perf/sched: Fix 'perf sched trace'
...
If we use 'perf sched trace', it will call symbol__init() again,
and can lead to a perf tool crash:
[root@localhost perf]# ./perf sched trace
*** glibc detected *** ./perf: free(): invalid next size (normal): 0x094c1898 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7602404]
/lib/libc.so.6(cfree+0x96)[0xb76043b6]
./perf[0x80730fe]
./perf[0x8074c97]
./perf[0x805eb59]
./perf[0x80536fd]
./perf[0x804b618]
./perf[0x804bdc3]
/lib/libc.so.6(__libc_start_main+0xe5)[0xb75a9735]
./perf[0x804af81]
======= Memory map: ========
08048000-08158000 r-xp 00000000 fe:00 556831 /home/eric/....
08158000-08168000 rw-p 0010f000 fe:00 556831 /home/eric/...
08168000-085fe000 rw-p 00000000 00:00 0
094ab000-094cc000 rw-p 00000000 00:00 0 [heap]
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com >
LKML-Reference: <4B1C7EE1.8030906@cn.fujitsu.com >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-07 06:26:22 +01:00
Arnaldo Carvalho de Melo
b9b1e1c71a
perf buildid-list: Fix copy'n'paste help message
...
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frédéric Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <1260129790-11520-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-06 21:07:08 +01:00
OGAWA Hirofumi
7691b1ec2e
perf tools: Misc small fixes
...
- util/header.c
"len" is aligned to 64. So, it tries to write the out of
long_name buffer.
So, this use "zero_buf" to write aligned area.
- util/trace-event-read.c
"size" is not including nul byte. So, this allocates it, and set '\0'.
- util/trace-event-parse.c
It needs parens to calc correct size.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <87d42s8iiu.fsf_-_@devron.myhome.or.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-06 18:15:02 +01:00
OGAWA Hirofumi
180f95e29a
perf: Make common SAMPLE_EVENT parser
...
Currently, sample event data is parsed for each commands, and it
is assuming that the data is not including other data. (E.g.
timechart, trace, etc. can't parse the event if it has
PERF_SAMPLE_CALLCHAIN)
So, even if we record the superset data for multiple commands at
a time, commands can't parse. etc.
To fix it, this makes common sample event parser, and use it to
parse sample event correctly. (PERF_SAMPLE_READ is unsupported
for now though, it seems to be not using.)
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <87hbs48imv.fsf@devron.myhome.or.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-06 18:15:01 +01:00
OGAWA Hirofumi
028c515253
perf timechart: Fix header handling
...
Update "struct trace_entry" to match with current one. And
remove "size" field from it.
If it has "size", it become cause of alignment mismatch of
structure with kernel.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp >
Acked-by: Arjan van de Ven <arjan@infradead.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <87ljhg8ioe.fsf@devron.myhome.or.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-12-06 18:15:01 +01:00