Naveen N. Rao
d5c2e2c17a
perf probe ppc64le: Prefer symbol table lookup over DWARF
...
Use symbol table lookups by default if DWARF is not necessary, since
powerpc ABIv2 encodes local entry points in the symbol table and the
function entry address in DWARF may not be appropriate for kprobes, as
described here:
https://sourceware.org/bugzilla/show_bug.cgi?id=17638
"The DWARF address ranges deliberately include the *whole* function,
both global and local entry points."
...
"If you want to set probes on a local entry point, you should look up
the symbol in the main symbol table (not DWARF), and check the st_other
bits; they will indicate whether the function has a local entry point,
and what its offset from the global entry point is. Note that GDB does
the same when setting a breakpoint on a function entry."
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com >
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Cc: linuxppc-dev@lists.ozlabs.org
Link: http://lkml.kernel.org/r/88a10e22f4aaba2aef812824ca4b10d7beeea012.1430217967.git.naveen.n.rao@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-05-04 12:43:46 -03:00
Ananth N Mavinakayanahalli
c50fc0a43e
perf probe ppc64le: Fix ppc64 ABIv2 symbol decoding
...
ppc64 ELF ABIv2 has a Global Entry Point (GEP) and a Local Entry Point
(LEP). For purposes of probing, we need the LEP - the offset to which is
encoded in st_other.
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Cc: linuxppc-dev@lists.ozlabs.org
Link: http://lkml.kernel.org/r/ab9cc5e2b9de4cbaaf50f6ef2346a6a81100bad1.1430217967.git.naveen.n.rao@linux.vnet.ibm.com
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-05-04 12:43:45 -03:00
Naveen N. Rao
031b84c407
perf probe ppc: Enable matching against dot symbols automatically
...
Allow perf probe to work on ppc ABIv1 without the need to specify the
leading dot '.' for functions. 'perf probe do_fork' works with this
patch.
We do this by changing how symbol name comparison works on ppc ABIv1 -
we simply ignore and skip over the initial dot, if one exists, during
symbol name comparison.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com >
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Cc: linuxppc-dev@lists.ozlabs.org
Link: http://lkml.kernel.org/r/652a8f3bfa919bd02a1836a128370eaed59b4a34.1430217967.git.naveen.n.rao@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-05-04 12:43:44 -03:00
Naveen N. Rao
fb6d594231
perf probe ppc: Use the right prefix when ignoring SyS symbols on ppc
...
Use the proper prefix when ignoring SyS symbols on ppc ABIv1. While at
it, generalize symbol selection so architectures can implement their own
logic.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com >
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Cc: linuxppc-dev@lists.ozlabs.org
Link: http://lkml.kernel.org/r/adf1f98b121ecaf292777fe5cc69fe1038feabce.1430217967.git.naveen.n.rao@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-05-04 12:43:43 -03:00
Naveen N. Rao
d233209833
perf probe ppc: Fix symbol fixup issues due to ELF type
...
If using the symbol table, symbol addresses are not being fixed up
properly, resulting in probes being placed at wrong addresses:
# perf probe do_fork
Added new event:
probe:do_fork (on do_fork)
You can now use it in all perf tools, such as:
perf record -e probe:do_fork -aR sleep 1
# cat /sys/kernel/debug/tracing/kprobe_events
p:probe/do_fork _text+635952
# printf "%x" 635952
9b430
# grep do_fork /boot/System.map
c0000000000ab430 T .do_fork
Fix by checking for ELF type ET_DYN used by ppc64 kernels.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com >
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Cc: linuxppc-dev@lists.ozlabs.org
Link: http://lkml.kernel.org/r/41392bb856ef62d929995e0b61967689b7915207.1430217967.git.naveen.n.rao@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-05-04 12:43:42 -03:00
Jiri Olsa
6d8e62c302
perf build: Add arch sparc objects building
...
Move the sparc arch objects building under build framework to be
included in the libperf build object.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-160hknrqr27c9zf59japw91y@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 13:22:01 -03:00
Jiri Olsa
61b021244b
perf build: Add arch sh objects building
...
Move the sh arch objects building under build framework to be included
in the libperf build object.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-nsg1j4djtq85jtrqw830f2az@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 13:21:31 -03:00
Jiri Olsa
953bce80c0
perf build: Add arch s390 objects building
...
Move the s390 arch objects building under build framework to be included
in the libperf build object.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-8f5tlfwegkirhir2ffz8nw3i@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 13:20:59 -03:00
Jiri Olsa
07a39e11a0
perf build: Add arch powerpc objects building
...
Move the powerpc arch objects building under build framework to be
included in the libperf build object.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-nqrtlipvjptdyjfuzlnegqgu@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 13:13:45 -03:00
Jiri Olsa
7db2161814
perf build: Add arch arm64 objects building
...
Move the arm64 arch objects building under build framework to be
included in the libperf build object.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-ptqfz1op92yrtccjiww7h1v5@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 13:13:22 -03:00
Jiri Olsa
f6ff0e6d7b
perf build: Add arch arm objects building
...
Move the arm arch objects building under build framework to be included
in the libperf build object.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-7bxhmeh4bjabqsmxu4gl6p0b@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 13:13:01 -03:00
Jiri Olsa
5e8c0fb6a9
perf build: Add arch x86 objects building
...
Move the x86 arch objects building under build framework to be included
in the libperf build object.
Adding also arch/$(ARCH)/Build files for the rest of the archs. The
reason for this is that in arch/Build we now do:
+libperf-y += $(ARCH)/
which would make the build to fail on other architectures, because the
build framework requires 'Build' file in nested directories and this
patch adds it only for x86.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-5enob06z07m7ew6nzzdmp3n2@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 13:12:01 -03:00
Jiri Olsa
9352aabad1
perf build: Add libperf objects building
...
Move the util objects building under build framework.
Add the new libperf build object so it's separated from the rest of the
perf code and could be librarized.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Will Deacon <will.deacon@arm.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-574tgt9t23tnxo9td8qjiibc@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-02-12 11:42:57 -03:00
Sukadev Bhattiprolu
6bcf9c1ff3
perf tools powerpc: Use dwfl_report_elf() instead of offline.
...
dwfl_report_offline() works only when libraries are prelinked.
Replace dwfl_report_offline() with dwfl_report_elf() so we correctly
extract debug info even from libraries that are not prelinked.
Reported-by: Jiri Olsa <jolsa@redhat.com >
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Tested-by: Jiri Olsa <jolsa@redhat.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Link: http://lkml.kernel.org/r/20150114221045.GA17703@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-01-16 17:49:30 -03:00
Arnaldo Carvalho de Melo
bb871a9c8d
perf tools: A thread's machine can be found via thread->mg->machine
...
So stop passing both machine and thread to several thread methods,
reducing function signature length.
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Borislav Petkov <bp@suse.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Don Zickus <dzickus@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/n/tip-ckcy19dcp1jfkmdihdjcqdn1@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-10-29 10:32:46 -02:00
Sukadev Bhattiprolu
7d073b335e
perf tools powerpc: Cache the DWARF debug info
...
Cache the DWARF debug info for DSO so we don't have to rebuild it for each
address in the DSO.
Note that dso__new() uses calloc() so don't need to set dso->dwfl to NULL.
$ /tmp/perf.orig --version
perf version 3.18.rc1.gc2661b8
$ /tmp/perf.new --version
perf version 3.18.rc1.g402d62
$ perf stat -e cycles,instructions /tmp/perf.orig report -g > orig
Performance counter stats for '/tmp/perf.orig report -g':
6,428,177,183 cycles # 0.000 GHz
4,176,288,391 instructions # 0.65 insns per cycle
1.840666132 seconds time elapsed
$ perf stat -e cycles,instructions /tmp/perf.new report -g > new
Performance counter stats for '/tmp/perf.new report -g':
305,773,142 cycles # 0.000 GHz
276,048,272 instructions # 0.90 insns per cycle
0.087693543 seconds time elapsed
$ diff orig new
$
Changelog[v2]:
[Arnaldo Carvalho] Cache in existing global objects rather than create
new static/globals in functions.
Reported-by: Anton Blanchard <anton@samba.org >
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Cc: Anton Blanchard <anton@au1.ibm.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Link: http://lkml.kernel.org/r/20141022000958.GB2228@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-10-29 10:32:46 -02:00
Will Deacon
660d13296b
perf tools: Fix build breakage on arm64 targets
...
Attempting to build the perf tool for an arm64 target results in the
following failure:
arch/arm64/util/unwind-libunwind.c: In function 'libunwind__arch_reg_id':
arch/arm64/util/unwind-libunwind.c:77:3: error: implicit declaration of function 'pr_err'
pr_err("unwind: invalid reg id %d\n", regnum);
^
arch/arm64/util/unwind-libunwind.c:77:3: error: nested extern declaration of 'pr_err'
This is due to commit 84f5d36f48
("perf tools: Move pr_* debug macros
into debug object") moving the pr_* macros into a new header file, but
failing to update architectures other than x86.
This patch adds the missing include, and fixes the build again.
Signed-off-by: Will Deacon <will.deacon@arm.com >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/1412076432-22045-1-git-send-email-will.deacon@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-10-01 14:44:17 -03:00
Stephane Eranian
29a3ce31c3
perf tool: fix compilation for ARM
...
This patch fixes ARM compile of the perf tool. The debug.h header file
was missing from a couple of unwind related modules.
Signed-off-by: Stephane Eranian <eranian@google.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20140905042103.GA3091@quad
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-09-17 17:08:09 -03:00
Anton Blanchard
65ccb4faae
perf tools powerpc: Fix build issue when DWARF support is disabled
...
The powerpc skip callchain code uses DWARF, so we must disable it if
DWARF is disabled.
Signed-off-by: Anton Blanchard <anton@samba.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Link: http://lkml.kernel.org/r/20140825182506.2be6512d@kryten
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-09-17 17:08:07 -03:00
Sukadev Bhattiprolu
ad7e767a72
perf tools powerpc: Explicitly include util/debug.h
...
Looks like util/debug.h was indirectly included before and is no longer
included now. pr_debug is left undefined and the build of perf tool
fails on Powerpc.
Explicitly include util/debug.h.
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Acked-by: Jiri Olsa <jolsa@redhat.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Michael Ellerman <michaele@au1.ibm.com >
Link: http://lkml.kernel.org/r/20140807072700.GA17623@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-08-20 08:29:10 -03:00
Elliott Hughes
c4d2df495c
perf tools: Add arm64 triplets
...
Adds the triplet used for arm64 by Android. Others will want to add
their own later.
Signed-off-by: Elliott Hughes <enh@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/20140814193920.A7D2D20572@enh.mtv.corp.google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-08-15 10:40:11 -03:00
Mark Salter
7d885749b6
perf tools: Fix arm64 build error
...
I'm seeing the following build error on arm64:
In file included from util/event.c:3:0:
util/event.h:95:17: error: 'PERF_REGS_MAX' undeclared here (not in a function)
u64 cache_regs[PERF_REGS_MAX];
^
This patch adds a PERF_REGS_MAX definition for arm64.
Signed-off-by: Mark Salter <msalter@redhat.com >
Acked-by: Jean Pihet <jean.pihet@linaro.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1406325766-8085-1-git-send-email-msalter@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-30 12:37:55 -03:00
Sukadev Bhattiprolu
c94b93cbca
perf powerpc: Include util/util.h and remove stringify macros
...
The stringify macros are defined in tools/perf/util/util.h and don't
need to be redfined specfiically for powerpc.
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Cc: Andi Kleen <andi@firstfloor.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Michael Ellerman <michaele@au1.ibm.com >
Link: http://lkml.kernel.org/r/20140724074718.GB18829@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-24 11:00:39 -03:00
Adrian Hunter
a6a69db4b6
perf tools: Move rdtsc() function
...
Move the rdtsc() function so it can be reusued.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/r/1406035081-14301-24-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-23 11:48:11 -03:00
Adrian Hunter
0b43786081
perf tools: Allow TSC conversion on any arch
...
It is possible to record a perf.data file on one architecture and
process it on another.
Consequently, TSC conversion functions need to be moved out of the arch
directory.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Namhyung Kim <namhyung@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/r/1405332185-4050-40-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-17 12:59:00 -03:00
Jiri Olsa
84f5d36f48
perf tools: Move pr_* debug macros into debug object
...
Moving pr_* debug macros to have it with in same object as debug
variables, becase we will change them to use verbose variable in next
patch.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1405374411-29012-3-git-send-email-jolsa@kernel.org
[ Add missing debug.h include in python scripting glue and in the libdw unwind lib ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-17 12:58:39 -03:00
Alexander Yarygin
3be8e2a0a5
perf kvm: Add stat support on s390
...
On s390, the vmexit event has a tree-like structure: between
exit_event_begin and exit_event_end several other events may happen and
with each of them refining the previous ones.
This patch adds a decoder for such events to the generic code and also
the files <asm/kvm_perf.h> and kvm-stat.c for s390.
Commands 'perf kvm stat record', 'report' and 'live' are supported.
Reviewed-by: David Ahern <dsahern@gmail.com >
Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com >
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Cornelia Huck <cornelia.huck@de.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1404397747-20939-5-git-send-email-yarygin@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-16 17:57:33 -03:00
Alexander Yarygin
54c801ff71
perf kvm: Add skip_event() for --duration option
...
Current code skips output of the x86 specific HLT event in order to
avoid flooding the output with enabled --duration option. The events to
be skipped should be architecture dependent, though.
Let's add an architecture specific array of events to be skipped and
introduce a skip_event() function checking against that array.
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com >
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com >
Reviewed-by: David Ahern <dsahern@gmail.com >
Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com >
Cc: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Cornelia Huck <cornelia.huck@de.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1404397747-20939-4-git-send-email-yarygin@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-16 17:57:32 -03:00
Alexander Yarygin
9daa81239e
perf kvm: Move arch specific code into arch/
...
Parts of a 'perf kvm stat' code make sense only for x86.
Let's move this code into the arch/x86/kvm-stat.c file and add
util/kvm-stat.h for generic structure definitions.
Add a global array 'kvm_reg_events_ops' for accessing the arch-specific
'kvm_events_ops' from generic code.
Since the several global arrays (i.e. 'kvm_events_tp') have been moved
to arch/*, we can not know their sizes and use them directly in
builtin-kvm.c. This patch fixes that problem by adding trimming NULL
element to each array and changing the behavior of their handlers in
generic code.
Reviewed-by: David Ahern <dsahern@gmail.com >
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com >
Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com >
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Cornelia Huck <cornelia.huck@de.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1404397747-20939-3-git-send-email-yarygin@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-16 17:57:32 -03:00
Alexander Yarygin
f8d9ccde2b
perf tools: Allow to use cpuinfo on s390
...
This patch defines CPUINFO_PROC for s390 and implements get_cpuid().
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com >
Reviewed-by: David Ahern <dsahern@gmail.com >
Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com >
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Cornelia Huck <cornelia.huck@de.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/87ioneo7qh.wl%yarygin@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-07 16:55:24 -03:00
Alexander Yarygin
da50ad6972
perf kvm: Introduce HAVE_KVM_STAT_SUPPORT flag
...
kvm stat support is currently conditional on i386/x86_64. Let's abstract
this into a HAVE_KVM_STAT_SUPPORT flag, so that other architectures can
support kvm stat as well.
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com >
Reviewed-by: David Ahern <dsahern@gmail.com >
Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com >
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Christian Borntraeger <borntraeger@de.ibm.com >
Cc: Cornelia Huck <cornelia.huck@de.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1404395992-17095-2-git-send-email-yarygin@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-07-07 16:55:23 -03:00
Sukadev Bhattiprolu
a60335ba32
perf tools powerpc: Adjust callchain based on DWARF debug info
...
When saving the callchain on Power, the kernel conservatively saves excess
entries in the callchain. A few of these entries are needed in some cases
but not others. We should use the DWARF debug information to determine
when the entries are needed.
Eg: the value in the link register (LR) is needed only when it holds the
return address of a function. At other times it must be ignored.
If the unnecessary entries are not ignored, we end up with duplicate arcs
in the call-graphs.
Use the DWARF debug information to determine if any callchain entries
should be ignored when building call-graphs.
Callgraph before the patch:
14.67% 2234 sprintft libc-2.18.so [.] __random
|
--- __random
|
|--61.12%-- __random
| |
| |--97.15%-- rand
| | do_my_sprintf
| | main
| | generic_start_main.isra.0
| | __libc_start_main
| | 0x0
| |
| --2.85%-- do_my_sprintf
| main
| generic_start_main.isra.0
| __libc_start_main
| 0x0
|
--38.88%-- rand
|
|--94.01%-- rand
| do_my_sprintf
| main
| generic_start_main.isra.0
| __libc_start_main
| 0x0
|
--5.99%-- do_my_sprintf
main
generic_start_main.isra.0
__libc_start_main
0x0
Callgraph after the patch:
14.67% 2234 sprintft libc-2.18.so [.] __random
|
--- __random
|
|--95.93%-- rand
| do_my_sprintf
| main
| generic_start_main.isra.0
| __libc_start_main
| 0x0
|
--4.07%-- do_my_sprintf
main
generic_start_main.isra.0
__libc_start_main
0x0
TODO: For split-debug info objects like glibc, we can only determine
the call-frame-address only when both .eh_frame and .debug_info
sections are available. We should be able to determin the CFA
even without the .eh_frame section.
Fix suggested by Anton Blanchard.
Thanks to valuable input on DWARF debug information from Ulrich Weigand.
Reported-by: Maynard Johnson <maynard@us.ibm.com >
Tested-by: Maynard Johnson <maynard@us.ibm.com >
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com >
Link: http://lkml.kernel.org/r/20140625154903.GA29607@us.ibm.com
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-06-27 11:14:51 +02:00
Jean Pihet
97eac381b1
perf tools: Add libdw DWARF post unwind support for ARM
...
Adding libdw DWARF post unwind support, which is part
of elfutils-devel/libdw-dev package from version 0.158.
The new code is contained in unwin-libdw.c object, and
implements unwind__get_entries unwind interface function.
Signed-off-by: Jean Pihet <jean.pihet@linaro.org >
Reviewed-by: Will Deacon <will.deacon@arm.com >
Cc: Arnaldo Carvalho de Melo <acme@kernel.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1400229672-16104-4-git-send-email-jean.pihet@linaro.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-05-16 11:39:29 +02:00
Jean Pihet
90fa9deb32
perf tests: Add dwarf unwind test on ARM
...
Adding dwarf unwind test, that setups live machine data over
the perf test thread and does the remote unwind.
Need to use -fno-optimize-sibling-calls for test compilation,
otherwise 'krava_*' function calls are optimized into jumps
and omitted from the stack unwind.
So far it was enabled only for x86.
Signed-off-by: Jean Pihet <jean.pihet@linaro.org >
Reviewed-by: Will Deacon <will.deacon@arm.com >
Cc: Arnaldo Carvalho de Melo <acme@kernel.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1400229672-16104-3-git-send-email-jean.pihet@linaro.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-05-16 11:39:18 +02:00
Jean Pihet
3418f9667e
perf tests: Introduce perf_regs_load function on ARM
...
Introducing perf_regs_load function, which is going
to be used for dwarf unwind test in following patches.
It takes single argument as a pointer to the regs dump
buffer and populates it with current registers values.
Signed-off-by: Jean Pihet <jean.pihet@linaro.org >
Reviewed-by: Will Deacon <will.deacon@arm.com >
Cc: Arnaldo Carvalho de Melo <acme@kernel.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1400229672-16104-2-git-send-email-jean.pihet@linaro.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-05-16 11:39:05 +02:00
Jean Pihet
21a8b756b8
perf tools: Consolidate types.h for ARM and ARM64
...
Prevents a build breakage since commit d944c4eebc
'tools: Consolidate types.h'
Signed-off-by: Jean Pihet <jean.pihet@linaro.org >
Link: http://lkml.kernel.org/r/1400229672-16104-1-git-send-email-jean.pihet@linaro.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-05-16 11:38:57 +02:00
Borislav Petkov
d944c4eebc
tools: Consolidate types.h
...
Combine all definitions into a common tools/include/linux/types.h and
kill the wild growth elsewhere. Move DECLARE_BITMAP to its proper
bitmap.h header.
Signed-off-by: Borislav Petkov <bp@suse.de >
Acked-by: Rusty Russell <rusty@rustcorp.com.au >
Link: http://lkml.kernel.org/n/tip-azczs7qcv6h9xek9od10hiv2@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-05-01 21:22:39 +02:00
Ingo Molnar
3617660e4e
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core
...
Pull perf/core improvements and fixes from Jiri Olsa:
* Wire up perf_regs and unwind support for ARM64 (Jean Pihet)
* Move u64_swap union to its single user's header, evsel.h (Borislav Petkov)
* Fix for s390 to properly parse tracepoints plus test code (Alexander Yarygin)
* Handle EINTR error for readn/writen (Namhyung Kim)
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2014-05-01 08:24:59 +02:00
Ingo Molnar
aeffe2abc8
Merge branch 'perf/urgent' into perf/core, to resolve conflict
...
Conflicts:
tools/perf/arch/x86/tests/dwarf-unwind.c
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2014-05-01 08:24:39 +02:00
Jiri Olsa
9a12672816
perf tests x86: Fix stack map lookup in dwarf unwind test
...
Previous commit 'perf x86: Fix perf to use non-executable stack, again'
moved stack map into MAP__VARIABLE map type again. Fixing the dwarf
unwind test stack map lookup appropriately.
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Arnaldo Carvalho de Melo <acme@kernel.org >
Cc: Jean Pihet <jean.pihet@linaro.org >
Link: http://lkml.kernel.org/n/tip-ttzyhbe4zls24z7ednkmhvxl@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-04-30 17:02:31 +02:00
Mathias Krause
6392b4ebdc
perf x86: Fix perf to use non-executable stack, again
...
arch/x86/tests/regs_load.S is missing the linker note about the stack
requirements, therefore making the linker fall back to an executable
stack. As this object gets linked against the final perf binary, it'll
needlessly end up with an executable stack. Fix this by adding the
appropriate linker note.
Also add a global linker flag to prevent future regressions, as
suggested by Jiri. This way perf won't get an executable stack even if
we fail to add the .GNU-stack linker note to future assembler files.
Though, doing so might create regressions the other way around, when
(statically) linking against libraries needing an executable stack.
But, apparently, regressing in that direction is wanted as it is an
indicator of poor code quality -- or just missing linker notes.
Fixes: 3c8b06f981
("perf tests x86: Introduce perf_regs_load function")
Signed-off-by: Mathias Krause <minipli@googlemail.com >
Acked-by: Ingo Molnar <mingo@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1398617466-22749-1-git-send-email-minipli@googlemail.com
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-04-30 17:02:30 +02:00
Jean Pihet
8ab596afb9
perf tools ARM64: Wire up perf_regs and unwind support
...
This patch hooks in the perf_regs and libunwind code for ARM64.
The tools/perf/arch/arm64 is created; it contains the arch specific
code for DWARF unwinding.
Signed-off-by: Jean Pihet <jean.pihet@linaro.org >
Acked-by: Will Deacon <will.deacon@arm.com >
Link: http://lkml.kernel.org/r/1398688353-3737-1-git-send-email-jean.pihet@linaro.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-04-29 15:31:19 +02:00
Arnaldo Carvalho de Melo
93d5731dcb
perf tools: Allocate thread map_groups's dynamically
...
Moving towards sharing map groups within a process threads.
Because of this we need the map groups to be dynamically allocated. No
other functional change is intended in here.
Based on a patch by Jiri Olsa, but this time _just_ making the
conversion from statically allocating thread->mg to turning it into a
pointer and instead of initializing it at thread's constructor,
introduce a constructor/destructor for the map_groups class and
call at thread creation time.
Later we will introduce the get/put methods when we move to sharing
those map_groups, when the get/put refcounting semantics will be needed.
Signed-off-by: Arnaldo Carvalho de Melo <acme@kernel.org >
Acked-by: Namhyung Kim <namhyung@kernel.org >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Don Zickus <dzickus@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Stephane Eranian <eranian@google.com >
Link: http://lkml.kernel.org/r/1397490723-1992-3-git-send-email-jolsa@redhat.com
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
2014-04-28 13:43:20 +02:00
Masanari Iida
763d7f5f27
perf tests x86: Fix memory leak in sample_ustack()
...
The buf is not freed, when kernel failed to get stack map
and return.
Signed-off-by: Masanari Iida <standby24x7@gmail.com >
Link: http://lkml.kernel.org/r/1398091024-7901-1-git-send-email-standby24x7@gmail.com
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
2014-04-23 13:19:01 +02:00
Jiri Olsa
0a4f2b6a3b
perf tools: Setup default dwarf post unwinder
...
Factor NO_LIBDW_DWARF_UNWIND makefile variable and code that selects
default DWARf post unwinder based on detected features (libdw and
libunwind support)
If both are detected the libunwind is selected as default. Simple
'make' will try to add:
- libunwind unwinder if present
- libdw unwinder if present
- disable dwarf unwind if non of libunwind and libdw
libraries are present
If one of the DWARF unwind libraries is detected, message is displayed
which one (libunwind/libdw) is compiled in.
Examples:
- compile in libdw unwinder if present:
$ make NO_LIBUNWIND=1
- compile in libdw (with libdw installation directory) unwinder if present:
$ make LIBDW_DIR=/opt/elfutils/ NO_LIBUNWIND=1
BUILD: Doing 'make -j4' parallel build
Auto-detecting system features:
... dwarf: [ on ]
... glibc: [ on ]
... gtk2: [ on ]
... libaudit: [ on ]
... libbfd: [ on ]
... libelf: [ on ]
... libnuma: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libslang: [ on ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ on ]
... DWARF post unwind library: libdw
- disable post dwarf unwind completely:
$ make NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1
BUILD: Doing 'make -j4' parallel build
Auto-detecting system features:
... dwarf: [ on ]
... glibc: [ on ]
... gtk2: [ on ]
... libaudit: [ on ]
... libbfd: [ on ]
... libelf: [ on ]
... libnuma: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libslang: [ on ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ on ]
... DWARF post unwind library: libunwind
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1392825179-5228-6-git-send-email-jolsa@redhat.com
[ Add suggestion about setting LIBDW_DIR when not finding libdw ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-02-24 09:29:36 -03:00
Jiri Olsa
5ea8415407
perf tools: Add libdw DWARF post unwind support
...
Adding libdw DWARF post unwind support, which is part of
elfutils-devel/libdw-dev package from version 0.158.
The new code is contained in unwin-libdw.c object, and implements
unwind__get_entries unwind interface function.
New Makefile variable NO_LIBDW_DWARF_UNWIND was added to control its
compilation, and is marked as disabled now. It's factored with the rest
of the Makefile unwind build code in the next patch.
Arch specific code was added for x86.
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1392825179-5228-5-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-02-24 09:29:36 -03:00
Jiri Olsa
ea3da69df9
perf callchain: Rename unwind__arch_reg_id into libunwind__arch_reg_id
...
Renaming unwind__arch_reg_id into libunwind__arch_reg_id, so it's clear
it's specific to libunwind.
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Acked-by: Jean Pihet <jean.pihet@linaro.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1389098853-14466-11-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-02-18 09:34:48 -03:00
Jiri Olsa
436aa749bb
perf callchain: Separate libunwind code to special object
...
We are going to add libdw library support to do dwarf post unwind.
Making the code ready by moving libunwind dwarf post unwind stuff into
separate object.
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Acked-by: Jean Pihet <jean.pihet@linaro.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1389098853-14466-10-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-02-18 09:34:48 -03:00
Jiri Olsa
352ea45a72
perf callchain: Add mask into struct regs_dump
...
Adding mask info into struct regs_dump to make the registers information
compact.
The mask was always passed along, so logically the mask info fits more
into the struct regs_dump.
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Acked-by: Jean Pihet <jean.pihet@linaro.org >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1389098853-14466-9-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-02-18 09:34:48 -03:00
Jiri Olsa
aa16b81fe9
perf tests x86: Add dwarf unwind test
...
Adding dwarf unwind test, that setups live machine data over the perf
test thread and does the remote unwind.
At this moment this test fails due to bug in the max_stack processing in
unwind__get_entries function. This is fixed in following patch.
Need to use -fno-optimize-sibling-calls for test compilation, otherwise
'krava_*' function calls are optimized into jumps and ommited from the
stack unwind.
So far it's enabled only for x86.
Signed-off-by: Jiri Olsa <jolsa@redhat.com >
Acked-by: Jean Pihet <jean.pihet@linaro.org >
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@kernel.org >
Cc: Jean Pihet <jean.pihet@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1389098853-14466-6-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2014-02-18 09:34:47 -03:00