From: Stephane Eranian <eranian@google.com>
To: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
"mingo@elte.hu" <mingo@elte.hu>,
"ak@linux.intel.com" <ak@linux.intel.com>,
Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
Rose Belcher <cel@us.ibm.com>,
Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>,
Sonny Rao <sonnyrao@chromium.org>,
John Mccutchan <johnmccutchan@google.com>,
David Ahern <dsahern@gmail.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Pawel Moll <pawel.moll@arm.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>
Subject: Re: [PATCH v8 2/4] perf inject: add jitdump mmap injection support
Date: Fri, 22 Jan 2016 13:22:51 -0800 [thread overview]
Message-ID: <CABPqkBT2vGuUhCpchhUt13AxvacDDy2RiLgBfiEqnpK5Q9NLuQ@mail.gmail.com> (raw)
In-Reply-To: <20160122204405.GB2470@redhat.com>
On Fri, Jan 22, 2016 at 12:44 PM, Arnaldo Carvalho de Melo
<acme@redhat.com> wrote:
> Em Mon, Nov 30, 2015 at 10:02:21AM +0100, Stephane Eranian escreveu:
>> This patch adds a --jit/-j option to perf inject.
>>
>> This options injects MMAP records into the perf.data
>> file to cover the jitted code mmaps. It also emits
>> ELF images for each function in the jidump file.
>> Those images are created where the jitdump file is.
>> The MMAP records point to that location as well.
>>
>> Typical flow:
>> $ perf record -k mono -- java -agentpath:libpjvmti.so java_class
>> $ perf inject --jit -i perf.data -o perf.data.jitted
>> $ perf report -i perf.data.jitted
>
> So, it fails 'make -C tools/perf build-test', specifically the one where
> we ask for a NO_LIBELF build, trying to fix:
>
I have rebase to tip.git last night. Will try your branch today.
Will add a couple of minor adjustments and also better documentation
on how to use it.
> - make_no_libelf: cd . && make -f Makefile DESTDIR=/tmp/tmp.AzIgKZ2Y7K NO_LIBELF=1
> cd . && make -f Makefile DESTDIR=/tmp/tmp.AzIgKZ2Y7K NO_LIBELF=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 ]
> ... numa_num_possible_cpus: [ on ]
> ... libperl: [ on ]
> ... libpython: [ on ]
> ... libslang: [ on ]
> ... libcrypto: [ on ]
> ... libunwind: [ on ]
> ... libdw-dwarf-unwind: [ OFF ]
> ... zlib: [ on ]
> ... lzma: [ on ]
> ... get_cpuid: [ on ]
> ... bpf: [ on ]
>
> config/Makefile:364: Disabling post unwind, no support found.
> GEN common-cmds.h
> CC fd/array.o
> CC util/abspath.o
> LD fd/libapi-in.o
> CC fs/fs.o
> CC fs/tracing_path.o
> LD fs/libapi-in.o
> CC cpu.o
> CC event-parse.o
> LD libapi-in.o
> AR libapi.a
> CC util/alias.o
> CC event-plugin.o
> CC trace-seq.o
> CC parse-filter.o
> CC parse-utils.o
> CC kbuffer-parse.o
> CC arch/common.o
> LD libtraceevent-in.o
> LINK libtraceevent.a
> CC exec-cmd.o
> PERF_VERSION = 4.4.gac64671
> CC help.o
> CC plugin_jbd2.o
> CC util/annotate.o
> CC pager.o
> LD plugin_jbd2-in.o
> CC plugin_hrtimer.o
> CC parse-options.o
> LD plugin_hrtimer-in.o
> CC plugin_kmem.o
> CC run-command.o
> CC arch/x86/util/header.o
> LD plugin_kmem-in.o
> CC sigchain.o
> CC plugin_kvm.o
> CC subcmd-config.o
> LD plugin_kvm-in.o
> CC plugin_mac80211.o
> LD libsubcmd-in.o
> AR libsubcmd.a
> CC arch/x86/util/tsc.o
> LD plugin_mac80211-in.o
> CC plugin_sched_switch.o
> CC arch/x86/util/pmu.o
> LD plugin_sched_switch-in.o
> CC plugin_function.o
> CC plugin_xen.o
> LD plugin_function-in.o
> CC arch/x86/util/kvm-stat.o
> CC plugin_scsi.o
> LD plugin_xen-in.o
> CC plugin_cfg80211.o
> LD plugin_scsi-in.o
> LINK plugin_jbd2.so
> LD plugin_cfg80211-in.o
> LINK plugin_hrtimer.so
> CC arch/x86/tests/arch-tests.o
> LINK plugin_kmem.so
> CC arch/x86/tests/rdpmc.o
> LINK plugin_kvm.so
> LINK plugin_mac80211.so
> LINK plugin_sched_switch.so
> LINK plugin_function.so
> LINK plugin_xen.so
> CC arch/x86/util/perf_regs.o
> LINK plugin_scsi.so
> LINK plugin_cfg80211.so
> CC arch/x86/tests/perf-time-to-tsc.o
> GEN perf-archive
> CC arch/x86/util/auxtrace.o
> GEN perf-with-kcore
> CC ui/gtk/browser.o
> CC util/build-id.o
> CC arch/x86/util/intel-pt.o
> CC arch/x86/tests/insn-x86.o
> CC arch/x86/tests/intel-cqm.o
> CC util/config.o
> CC ui/gtk/hists.o
> CC arch/x86/util/intel-bts.o
> LD arch/x86/tests/libperf-in.o
> CC util/ctype.o
> CC util/db-export.o
> CC util/env.o
> LD arch/x86/util/libperf-in.o
> LD arch/x86/libperf-in.o
> LD arch/libperf-in.o
> CC ui/setup.o
> CC util/event.o
> CC util/evlist.o
> CC ui/helpline.o
> CC ui/gtk/setup.o
> CC ui/progress.o
> CC ui/util.o
> CC util/evsel.o
> CC ui/gtk/util.o
> CC ui/hist.o
> CC util/find_bit.o
> CC ui/gtk/helpline.o
> CC util/kallsyms.o
> CC util/levenshtein.o
> CC ui/gtk/progress.o
> CC util/llvm-utils.o
> BISON util/parse-events-bison.c
> CC util/perf_regs.o
> CC ui/gtk/annotate.o
> CC util/path.o
> CC util/rbtree.o
> CC util/libstring.o
> CC ui/stdio/hist.o
> CC util/bitmap.o
> CC util/hweight.o
> CC util/quote.o
> CC util/strbuf.o
> LD ui/gtk/gtk-in.o
> LD gtk-in.o
> CC util/string.o
> CC builtin-bench.o
> CC ui/browser.o
> CC util/strlist.o
> CC builtin-annotate.o
> CC util/strfilter.o
> CC util/top.o
> CC builtin-config.o
> CC ui/browsers/annotate.o
> CC util/usage.o
> CC builtin-diff.o
> CC util/wrapper.o
> CC util/dso.o
> CC util/symbol.o
> CC ui/browsers/hists.o
> CC builtin-evlist.o
> CC builtin-help.o
> CC ui/tui/setup.o
> CC util/color.o
> CC builtin-sched.o
> CC ui/tui/util.o
> CC util/header.o
> CC ui/tui/helpline.o
> CC ui/tui/progress.o
> LD ui/tui/libperf-in.o
> CC builtin-buildid-list.o
> CC builtin-buildid-cache.o
> CC builtin-list.o
> CC builtin-record.o
> CC builtin-report.o
> CC ui/browsers/map.o
> CC util/callchain.o
> CC ui/browsers/scripts.o
> CC builtin-stat.o
> CC builtin-timechart.o
> CC ui/browsers/header.o
> LD ui/browsers/libperf-in.o
> LD ui/libperf-in.o
> CC util/values.o
> CC scripts/perl/Perf-Trace-Util/Context.o
> CC util/debug.o
> CC builtin-top.o
> LD scripts/perl/Perf-Trace-Util/libperf-in.o
> CC scripts/python/Perf-Trace-Util/Context.o
> CC builtin-script.o
> CC util/machine.o
> LD scripts/python/Perf-Trace-Util/libperf-in.o
> LD scripts/libperf-in.o
> CC util/map.o
> CC builtin-kmem.o
> CC util/pstack.o
> CC util/session.o
> CC util/ordered-events.o
> CC builtin-lock.o
> CC util/comm.o
> CC builtin-kvm.o
> CC util/thread.o
> CC util/thread_map.o
> CC util/trace-event-parse.o
> CC builtin-inject.o
> CC builtin-mem.o
> CC builtin-data.o
> CC util/parse-events-bison.o
> CC builtin-version.o
> CC builtin-trace.o
> CC bench/sched-messaging.o
> CC tests/builtin-test.o
> BISON util/pmu-bison.c
> CC bench/sched-pipe.o
> CC util/trace-event-read.o
> CC tests/parse-events.o
> CC bench/mem-functions.o
> CC util/trace-event-info.o
> CC bench/futex-hash.o
> CC util/trace-event-scripting.o
> CC bench/futex-wake.o
> CC util/trace-event.o
> CC perf.o
> CC bench/futex-wake-parallel.o
> CC util/svghelper.o
> CC tests/dso-data.o
> CC bench/futex-requeue.o
> CC bench/futex-lock-pi.o
> CC bench/mem-memcpy-x86-64-asm.o
> CC bench/mem-memset-x86-64-asm.o
> CC bench/numa.o
> CC tests/attr.o
> CC tests/vmlinux-kallsyms.o
> CC util/sort.o
> CC tests/openat-syscall.o
> CC tests/openat-syscall-all-cpus.o
> CC tests/openat-syscall-tp-fields.o
> CC tests/mmap-basic.o
> CC tests/perf-record.o
> LD bench/perf-in.o
> CC tests/evsel-roundtrip-name.o
> CC tests/evsel-tp-sched.o
> CC tests/fdarray.o
> CC tests/pmu.o
> CC tests/hists_common.o
> CC tests/hists_link.o
> CC util/hist.o
> CC tests/hists_filter.o
> CC tests/hists_output.o
> CC tests/hists_cumulate.o
> CC tests/python-use.o
> CC tests/bp_signal.o
> CC util/util.o
> CC util/xyarray.o
> CC tests/bp_signal_overflow.o
> CC util/cpumap.o
> CC util/cgroup.o
> CC tests/task-exit.o
> CC util/target.o
> CC tests/sw-clock.o
> CC util/rblist.o
> CC util/intlist.o
> CC util/vdso.o
> CC util/counts.o
> CC tests/mmap-thread-lookup.o
> CC tests/thread-mg-share.o
> CC util/stat.o
> CC util/stat-shadow.o
> CC tests/switch-tracking.o
> CC tests/keep-tracking.o
> CC util/record.o
> CC util/srcline.o
> CC tests/code-reading.o
> CC tests/sample-parsing.o
> CC util/data.o
> CC tests/parse-no-sample-id-all.o
> CC util/tsc.o
> CC util/cloexec.o
> CC tests/kmod-path.o
> CC util/thread-stack.o
> CC tests/thread-map.o
> CC util/auxtrace.o
> CC tests/llvm.o
> CC tests/bpf.o
> CC util/intel-pt-decoder/intel-pt-pkt-decoder.o
> CC tests/topology.o
> CC tests/cpumap.o
> GEN util/intel-pt-decoder/inat-tables.c
> CC util/scripting-engines/trace-event-perl.o
> CC util/intel-pt-decoder/intel-pt-log.o
> CC tests/stat.o
> CC tests/event_update.o
> CC util/intel-pt-decoder/intel-pt-decoder.o
> CC tests/llvm-src-base.o
> CC tests/llvm-src-kbuild.o
> CC tests/llvm-src-prologue.o
> CC util/scripting-engines/trace-event-python.o
> LD tests/perf-in.o
> LD perf-in.o
> CC util/intel-pt.o
> CC util/intel-bts.o
> LD util/scripting-engines/libperf-in.o
> CC util/parse-branch-options.o
> GEN libtraceevent-dynamic-list
> CC util/intel-pt-decoder/intel-pt-insn-decoder.o
> CC util/parse-regs-options.o
> CC util/term.o
> CC util/help-unknown-cmd.o
> CC util/symbol-minimal.o
> CC util/zlib.o
> GEN python/perf.so
> CC util/lzma.o
> LD util/intel-pt-decoder/libperf-in.o
> CC util/demangle-java.o
> CC util/jitdump.o
> CC util/genelf.o
> FLEX util/parse-events-flex.c
> FLEX util/pmu-flex.c
> CC util/pmu-bison.o
> CC util/parse-events.o
> CC util/parse-events-flex.o
> CC util/pmu.o
> CC util/pmu-flex.o
> LD util/libperf-in.o
> LD libperf-in.o
> AR libperf.a
> LINK perf
> LINK libperf-gtk.so
> libperf.a(libperf-in.o): In function `jit_write_elf':
> /home/acme/git/linux/tools/perf/util/genelf.c:170: undefined reference to `elf_version'
> /home/acme/git/linux/tools/perf/util/genelf.c:175: undefined reference to `elf_begin'
> /home/acme/git/linux/tools/perf/util/genelf.c:184: undefined reference to `elf64_newehdr'
> /home/acme/git/linux/tools/perf/util/genelf.c:201: undefined reference to `elf_newscn'
> /home/acme/git/linux/tools/perf/util/genelf.c:207: undefined reference to `elf_newdata'
> /home/acme/git/linux/tools/perf/util/genelf.c:220: undefined reference to `elf64_getshdr'
> /home/acme/git/linux/tools/perf/util/genelf.c:235: undefined reference to `elf_newscn'
> /home/acme/git/linux/tools/perf/util/genelf.c:241: undefined reference to `elf_newdata'
> /home/acme/git/linux/tools/perf/util/genelf.c:254: undefined reference to `elf64_getshdr'
> /home/acme/git/linux/tools/perf/util/genelf.c:271: undefined reference to `elf_newscn'
> /home/acme/git/linux/tools/perf/util/genelf.c:277: undefined reference to `elf_newdata'
> /home/acme/git/linux/tools/perf/util/genelf.c:290: undefined reference to `elf64_getshdr'
> /home/acme/git/linux/tools/perf/util/genelf.c:314: undefined reference to `elf_newscn'
> /home/acme/git/linux/tools/perf/util/genelf.c:320: undefined reference to `elf_newdata'
> /home/acme/git/linux/tools/perf/util/genelf.c:333: undefined reference to `elf64_getshdr'
> /home/acme/git/linux/tools/perf/util/genelf.c:347: undefined reference to `elf_newscn'
> /home/acme/git/linux/tools/perf/util/genelf.c:353: undefined reference to `elf_newdata'
> /home/acme/git/linux/tools/perf/util/genelf.c:375: undefined reference to `elf64_getshdr'
> /home/acme/git/linux/tools/perf/util/genelf.c:388: undefined reference to `elf_update'
> /home/acme/git/linux/tools/perf/util/genelf.c:395: undefined reference to `elf_end'
> collect2: error: ld returned 1 exit status
> Makefile.perf:333: recipe for target 'perf' failed
> make[4]: *** [perf] Error 1
> make[4]: *** Waiting for unfinished jobs....
> Makefile:68: recipe for target 'all' failed
> make[3]: *** [all] Error 2
> test: test -x ./perf
> tests/make:273: recipe for target 'make_no_libelf' failed
> make[2]: *** [make_no_libelf] Error 1
> tests/make:7: recipe for target 'all' failed
> make[1]: *** [all] Error 2
> Makefile:81: recipe for target 'build-test' failed
> make: *** [build-test] Error 2
> make: Leaving directory '/home/acme/git/linux/tools/perf'
>
> Performance counter stats for 'make -C tools/perf build-test':
>
> 1007267.820554 task-clock (msec) # 2.516 CPUs utilized
> 591,484 context-switches # 0.587 K/sec
> 66,439 cpu-migrations # 0.066 K/sec
> 26,771,257 page-faults # 0.027 M/sec
> 2,863,648,588,724 cycles # 2.843 GHz
> <not supported> stalled-cycles-frontend
> <not supported> stalled-cycles-backend
> 2,459,464,718,802 instructions # 0.86 insns per cycle
> 547,848,880,912 branches # 543.896 M/sec
> 14,513,951,279 branch-misses # 2.65% of all branches
>
> 400.280077927 seconds time elapsed
>
> [acme@jouet linux]$
>
next prev parent reply other threads:[~2016-01-22 21:22 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-30 9:02 [PATCH v8 0/4] perf: add support for profiling jitted code Stephane Eranian
2015-11-30 9:02 ` [PATCH v8 1/4] perf tools: add Java demangling support Stephane Eranian
2016-02-09 12:14 ` [tip:perf/core] perf symbols: " tip-bot for Stephane Eranian
2015-11-30 9:02 ` [PATCH v8 2/4] perf inject: add jitdump mmap injection support Stephane Eranian
2016-01-22 20:44 ` Arnaldo Carvalho de Melo
2016-01-22 21:22 ` Stephane Eranian [this message]
[not found] ` <20160122215542.GK4034@kernel.org>
[not found] ` <20160122220929.GL4034@kernel.org>
2016-01-22 22:10 ` Arnaldo Carvalho de Melo
2016-02-04 21:53 ` Arnaldo Carvalho de Melo
2016-02-04 23:02 ` Stephane Eranian
2016-02-05 13:47 ` Arnaldo Carvalho de Melo
2016-02-05 13:51 ` Arnaldo Carvalho de Melo
2016-02-05 13:57 ` Arnaldo Carvalho de Melo
2016-02-05 14:24 ` Arnaldo Carvalho de Melo
2016-02-08 18:53 ` Stephane Eranian
2016-02-11 22:16 ` Arnaldo Carvalho de Melo
2016-02-12 20:32 ` Stephane Eranian
2016-02-12 20:43 ` Arnaldo Carvalho de Melo
2016-02-15 2:16 ` Stephane Eranian
2016-02-15 17:14 ` Arnaldo Carvalho de Melo
2016-02-09 12:14 ` [tip:perf/core] perf build: Add libcrypto feature detection tip-bot for Stephane Eranian
2016-02-09 12:15 ` [tip:perf/core] perf inject: Make sure mmap records are ordered when injecting build_ids tip-bot for Arnaldo Carvalho de Melo
2016-02-09 12:15 ` [tip:perf/core] perf inject: Add jitdump mmap injection support tip-bot for Stephane Eranian
2015-11-30 9:02 ` [PATCH v8 3/4] perf tools: add JVMTI agent library Stephane Eranian
2016-02-09 12:16 ` [tip:perf/core] " tip-bot for Stephane Eranian
2015-11-30 9:02 ` [PATCH v8 4/4] perf/jit: add source line info support Stephane Eranian
2016-02-09 12:16 ` [tip:perf/core] perf jit: " tip-bot for Stephane Eranian
2016-01-22 22:13 [PATCH v8 2/4] perf inject: add jitdump mmap injection support Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CABPqkBT2vGuUhCpchhUt13AxvacDDy2RiLgBfiEqnpK5Q9NLuQ@mail.gmail.com \
--to=eranian@google.com \
--cc=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=cel@us.ibm.com \
--cc=dsahern@gmail.com \
--cc=johnmccutchan@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=namhyung@kernel.org \
--cc=pawel.moll@arm.com \
--cc=peterz@infradead.org \
--cc=sonnyrao@chromium.org \
--cc=sukadev@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).