[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160811154942.GG27651@kernel.org>
Date: Thu, 11 Aug 2016 12:49:42 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Anton Blanchard <anton@...ba.org>
Cc: Ravi Bangoria <ravi.bangoria@...ux.vnet.ibm.com>,
linux-kernel@...r.kernel.org, peterz@...radead.org,
mingo@...hat.com, alexander.shishkin@...ux.intel.com,
bsingharora@...il.com, naveen.n.rao@...ux.vnet.ibm.com,
ananth@...ibm.com, mhiramat@...nel.org, wangnan0@...wei.com,
namhyung@...nel.org
Subject: Re: [PATCH 2/2] perf ppc64le: Fix probe location when using DWARF
Em Thu, Aug 11, 2016 at 09:54:57AM +1000, Anton Blanchard escreveu:
> Hi,
>
> > Powerpc has Global Entry Point and Local Entry Point for functions.
> > LEP catches call from both the GEP and the LEP. Symbol table of ELF
> > contains GEP and Offset from which we can calculate LEP, but debuginfo
> > does not have LEP info.
> >
> > Currently, perf prioritize symbol table over dwarf to probe on LEP
> > for ppc64le. But when user tries to probe with function parameter,
> > we fall back to using dwarf(i.e. GEP) and when function called via
> > LEP, probe will never hit.
>
> This patch causes a build failure for me on ppc64le:
>
> libperf.a(libperf-in.o): In function `arch__post_process_probe_trace_events':
>
> tools/perf/arch/powerpc/util/sym-handling.c:109: undefined reference to `get_target_map'
Humm, he sent a patch, I'm applying it, but I'm trying to figure out why
this wasn't catched by my cross compiling container :-\
Complete log and:
CC /tmp/build/perf/util/probe-event.o
Because:
... libelf: [ on ]
So I would have to build with NO_LIBELF=1? /me tries... further proof I need to
build with 'make -C tools/perf build-test' for all the arches, that will test, among
other combos, with NO_LIBELF=1 and without :-\
# docker run --entrypoint=/bin/bash -v /home/acme/git:/git:Z --rm -ti docker.io/acmel/linux-perf-tools-build-ubuntu:16.04-x-powerpc64el
perfbuilder@...ca30d5b61:/$ make NO_LIBELF=1 ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- -C /git/linux/tools/perf O=/tmp/build/perf
<SNIP>
LINK /tmp/build/perf/perf
/tmp/build/perf/libperf.a(libperf-in.o): In function `arch__post_process_probe_trace_events':
/git/linux/tools/perf/arch/powerpc/util/sym-handling.c:109: undefined reference to `get_target_map'
collect2: error: ld returned 1 exit status
Makefile.perf:435: recipe for target '/tmp/build/perf/perf' failed
make[1]: *** [/tmp/build/perf/perf] Error 1
Makefile:68: recipe for target 'all' failed
make: *** [all] Error 2
make: Leaving directory '/git/linux/tools/perf'
perfbuilder@...ca30d5b61:/$
Ok, reproduced, will add the NO_LIBELF=1 to the regular set of tests for ppc64le.
- Arnaldo
Powered by blists - more mailing lists