Arnaldo Carvalho de Melo
b269876c8d
perf top: Don't allocate the source parsing members upfront
...
Defer to parse_source() time allocating it.
Now we use about this much memory:
1724 root 20 0 42104 10m 940 S 0.0 0.4 0:00.23 perf
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: <1258490282-1821-3-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-19 06:03:41 +01:00
Arnaldo Carvalho de Melo
5a8e5a3065
perf top: Allocate space only for the number of counters used
...
Reducing memory consumption on a typical desktop machine:
From:
32710 root 20 0 172m 142m 1056 S 0.0 4.7 0:00.37
perf
To:
420 root 20 0 47528 16m 1056 R 0.3 0.5 0:00.24 perf
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: <1258490282-1821-2-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-19 06:03:40 +01:00
Arnaldo Carvalho de Melo
51a472decb
perf top: Introduce helper function to access symbol from sym_entry
...
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: <1258490282-1821-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-19 06:03:38 +01:00
Arnaldo Carvalho de Melo
1a105f743d
perf top: Suppress DSO column if only one is present
...
E.g.
[root@doppio ~]# perf top -U
---------------------------------------------------------------------------
PerfTop: 482 irqs/sec kernel:100.0% [1000Hz cycles], (all, 2 CPUs)
---------------------------------------------------------------------------
DSO: vmlinux
samples pcnt function
_______ _____ _________________________
471.00 47.9% read_hpet
57.00 5.8% acpi_os_read_port
30.00 3.1% hpet_next_event
30.00 3.1% find_busiest_group
22.00 2.2% schedule
18.00 1.8% sched_clock_local
14.00 1.4% _spin_lock_irqsave
14.00 1.4% native_read_tsc
13.00 1.3% trace_hardirqs_off
9.00 0.9% fget_light
9.00 0.9% ioread8
8.00 0.8% do_sys_poll
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: <1258479655-28662-3-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-19 06:03:37 +01:00
Arnaldo Carvalho de Melo
13cc5079f2
perf top: Auto adjust symbol and dso widths
...
We pre-calculate the symbol name length, then after we sort the
entries to print, calculate the biggest one and use that for the
symbol name width justification, then use the
dso->long_name->len to justificate the DSO name, deciding whether
using the short or long name depending on how much space we have
on the terminal.
IOW give as much info to the user as the terminal width allows.
Suggested-by: Ingo Molnar <mingo@elte.hu >
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: <1258479655-28662-2-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-19 06:03:36 +01:00
Arnaldo Carvalho de Melo
cfc10d3bcc
perf symbols: Add a long_name_len member to struct dso
...
Using a two bytes hole we already had and since we also need to
calculate this strlen for fetching the buildids. We'll use it in
'perf top' to auto-adjust the output based on the terminal
width.
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: <1258479655-28662-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-19 06:03:34 +01:00
Luck, Tony
11ada26c78
perf tools: Add ia64 support for tools/perf/
...
Compiler on ia64 rejects the "-m64" option.
Add arch specific pieces to perf.h
Signed-off-by: Tony Luck <tony.luck@intel.com >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4b02d7f43514327a@agluck-desktop.sc.intel.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-19 06:03:33 +01:00
Michael S. Tsirkin
7513865077
perf tools: Support static build
...
This makes it possible to build perf statically, by
performing:
make LDFLAGS=-static
Since static libraries are only searched in the order they are
specified, move library list from LDFLAGS to EXTLIBS, so that
they are put at the end of linker command line.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
LKML-Reference: <20091029152002.GA5406@redhat.com >
[ v2: resolved conflicts ]
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 10:18:15 +01:00
Ingo Molnar
a7b63425a4
Merge branch 'perf/core' into perf/probes
...
Resolved merge conflict in tools/perf/Makefile
Merge reason: we want to queue up a dependent patch.
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 10:17:47 +01:00
Arnaldo Carvalho de Melo
3726cc75e5
perf tools: Don't die() in do_write()
...
Propagate the errors instead, the users are the ones to decide
what to do if a library call fails.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258427892-16312-4-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:56 +01:00
Arnaldo Carvalho de Melo
a9a70bbce7
perf tools: Don't die() in perf_header__new()
...
Propagate the errors instead, the users are the ones to decide
what to do if a library call fails.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258427892-16312-3-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:56 +01:00
Arnaldo Carvalho de Melo
5875412152
perf tools: Don't die() in perf_header_attr__add_id()
...
Propagate the errors instead, the users are the ones to decide
what to do if a library call fails.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258427892-16312-2-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:55 +01:00
Arnaldo Carvalho de Melo
11deb1f9f6
perf tools: Don't die() in perf_header__add_attr()
...
Propagate the errors instead, the users are the ones to decide
what to do if a library call fails.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258427892-16312-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:54 +01:00
Arnaldo Carvalho de Melo
1124ba73be
perf buildid-list: Always show the DSO name
...
Porcelain can ignore it, humans can make more sense of it.
Suggested-by: Frederic Weisbecker <fweisbec@gmail.com >
Suggested-by: Ingo Molnar <mingo@elte.hu >
Suggested-by: Peter Zijlstra <peterz@infradead.org >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258415125-15019-2-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:54 +01:00
Arnaldo Carvalho de Melo
8ffcda1731
perf top: Introduce --hide_{user,kernel}_symbols
...
Default continues to be showing all symbols. 'K' and 'U' can be
used to toggle showing kernel and user symbols.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258415125-15019-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:53 +01:00
Arnaldo Carvalho de Melo
3b6ed98895
perf top: Use all the lines in the screen
...
By querying the current number of rows, if the user specifies
the number of entries, use that instead. If the user uses the
'e' command to change the number of lines 0 will mean do it
automatically, any other number disables the auto resizing.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258407027-384-2-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:53 +01:00
Arnaldo Carvalho de Melo
dc79c0fc08
perf tools: Don't die in perf_header_attr__new()
...
We really should propagate such kinds of errors so that users of
these library functions decide what to do in such cases instead
of exiting in random places like now.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258407027-384-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:19:52 +01:00
Masami Hiramatsu
35039eb6b1
x86: Show symbol name if insn decoder test failed
...
Show symbol name if insn decoder test find a difference.
This will help us to find out where the issue is.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Stephen Rothwell <sfr@canb.auug.org.au >
Cc: Randy Dunlap <rdunlap@xenotime.net >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Stephen Rothwell <sfr@canb.auug.org.au >
LKML-Reference: <20091116230624.5250.49813.stgit@harusame>
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:16:50 +01:00
Masami Hiramatsu
d65ff75fbe
x86: Add verbose option to insn decoder test
...
Add verbose option to insn decoder test. This dumps decoded
instruction when building kernel with V=1.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Stephen Rothwell <sfr@canb.auug.org.au >
Cc: Randy Dunlap <rdunlap@xenotime.net >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Stephen Rothwell <sfr@canb.auug.org.au >
LKML-Reference: <20091116230618.5250.18762.stgit@harusame>
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-17 07:16:48 +01:00
Arnaldo Carvalho de Melo
c34984b2bb
perf buildid-list: New plumbing command
...
With this we can list the buildids in a perf.data file so that
we can pipe them to other, distro specific tools that from the
buildids can figure out separate packages (foo-debuginfo) where
we can find the matching symtabs so that perf report can do its
job.
E.g:
[acme@doppio linux-2.6-tip]$ perf buildid-list | head -5
8e08b117e5458ad3f85da16d42d0fc5cd21c5869
520c2387a587cc5acfcf881e27dba1caaeab4b1f
ec8dd400904ddfcac8b1c343263a790f977159dc
7caedbca5a6d8ab39a7fe44bd28c07d3e14a3f3f
379bb828fd08859dbea73279f04abefabc95a6a3
[acme@doppio linux-2.6-tip]$ perf buildid-list -v | head -5
8e08b117e5458ad3f85da16d42d0fc5cd21c5869 /sbin/init
520c2387a587cc5acfcf881e27dba1caaeab4b1f /lib64/ld-2.10.1.so
ec8dd400904ddfcac8b1c343263a790f977159dc /lib64/libc-2.10.1.so
7caedbca5a6d8ab39a7fe44bd28c07d3e14a3f3f /sbin/udevd
379bb828fd08859dbea73279f04abefabc95a6a3 /lib64/libdl-2.10.1.so
[acme@doppio linux-2.6-tip]$
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258396365-29217-5-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-16 22:05:51 +01:00
Arnaldo Carvalho de Melo
9e03eb2d51
perf tools: Introduce dsos__fprintf_buildid
...
To print the buildids in the list of dsos. Will be used by 'perf
buildid-list'
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258396365-29217-4-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-16 22:05:51 +01:00
Arnaldo Carvalho de Melo
37562eac37
perf tools: Generalize perf_header__adds_read()
...
Renaming it to perf_header__process_sections() and passing a
callback to handle each feature.
The next changesets will introduce 'perf buildid-list' that will
handle just the HEADER_BUILD_ID table, ignoring all the other
features.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Acked-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258396365-29217-3-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-16 22:05:50 +01:00
Arnaldo Carvalho de Melo
8f41146aed
perf tools: Debug.h needs to include event.h for event_t
...
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258396365-29217-2-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-16 22:05:50 +01:00
Arnaldo Carvalho de Melo
84fe8488ad
perf symbols: Pass the offset to perf_header__read_build_ids()
...
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258396365-29217-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-16 22:05:49 +01:00
Arnaldo Carvalho de Melo
8216416167
perf symbols: Call the symbol filter in dso__synthesize_plt_symbols()
...
We need to pass the symbol to the filter so that, for instance,
'perf top' can do filtering and also set the private area it
manages, setting the ->map pointer, etc.
I found this while running 'perf top' on a machine where hits
happened on PLT symbols, where ->map wasn't being set up and
segfaults thus happened.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <1258386491-20278-1-git-send-email-acme@infradead.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-11-16 17:29:54 +01:00