2019-02-13 12:32:39 +00:00
|
|
|
perf-y += annotate.o
|
2019-11-07 07:47:14 +00:00
|
|
|
perf-y += block-info.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += block-range.o
|
|
|
|
perf-y += build-id.o
|
2019-08-22 19:58:29 +00:00
|
|
|
perf-y += cacheline.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += config.o
|
2019-09-24 18:14:12 +00:00
|
|
|
perf-y += copyfile.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += ctype.o
|
|
|
|
perf-y += db-export.o
|
|
|
|
perf-y += env.o
|
|
|
|
perf-y += event.o
|
|
|
|
perf-y += evlist.o
|
2020-05-05 15:18:21 +00:00
|
|
|
perf-y += sideband_evlist.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += evsel.o
|
|
|
|
perf-y += evsel_fprintf.o
|
2019-09-24 18:41:51 +00:00
|
|
|
perf-y += perf_event_attr_fprintf.o
|
2019-08-15 14:00:11 +00:00
|
|
|
perf-y += evswitch.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += find_bit.o
|
|
|
|
perf-y += get_current_dir_name.o
|
|
|
|
perf-y += kallsyms.o
|
|
|
|
perf-y += levenshtein.o
|
|
|
|
perf-y += llvm-utils.o
|
|
|
|
perf-y += mmap.o
|
|
|
|
perf-y += memswap.o
|
|
|
|
perf-y += parse-events.o
|
|
|
|
perf-y += perf_regs.o
|
|
|
|
perf-y += path.o
|
|
|
|
perf-y += print_binary.o
|
2019-07-09 17:49:26 +00:00
|
|
|
perf-y += rlimit.o
|
2019-06-26 18:27:58 +00:00
|
|
|
perf-y += argv_split.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += rbtree.o
|
|
|
|
perf-y += libstring.o
|
|
|
|
perf-y += bitmap.o
|
|
|
|
perf-y += hweight.o
|
|
|
|
perf-y += smt.o
|
|
|
|
perf-y += strbuf.o
|
|
|
|
perf-y += string.o
|
|
|
|
perf-y += strlist.o
|
|
|
|
perf-y += strfilter.o
|
|
|
|
perf-y += top.o
|
|
|
|
perf-y += usage.o
|
|
|
|
perf-y += dso.o
|
2019-08-30 14:11:01 +00:00
|
|
|
perf-y += dsos.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += symbol.o
|
|
|
|
perf-y += symbol_fprintf.o
|
|
|
|
perf-y += color.o
|
|
|
|
perf-y += color_config.o
|
|
|
|
perf-y += metricgroup.o
|
|
|
|
perf-y += header.o
|
|
|
|
perf-y += callchain.o
|
|
|
|
perf-y += values.o
|
|
|
|
perf-y += debug.o
|
2019-11-21 00:15:11 +00:00
|
|
|
perf-y += fncache.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += machine.o
|
|
|
|
perf-y += map.o
|
|
|
|
perf-y += pstack.o
|
|
|
|
perf-y += session.o
|
|
|
|
perf-y += sample-raw.o
|
|
|
|
perf-y += s390-sample-raw.o
|
|
|
|
perf-$(CONFIG_TRACE) += syscalltbl.o
|
|
|
|
perf-y += ordered-events.o
|
|
|
|
perf-y += namespaces.o
|
|
|
|
perf-y += comm.o
|
|
|
|
perf-y += thread.o
|
|
|
|
perf-y += thread_map.o
|
|
|
|
perf-y += trace-event-parse.o
|
|
|
|
perf-y += parse-events-flex.o
|
|
|
|
perf-y += parse-events-bison.o
|
|
|
|
perf-y += pmu.o
|
|
|
|
perf-y += pmu-flex.o
|
|
|
|
perf-y += pmu-bison.o
|
|
|
|
perf-y += trace-event-read.o
|
|
|
|
perf-y += trace-event-info.o
|
|
|
|
perf-y += trace-event-scripting.o
|
|
|
|
perf-y += trace-event.o
|
|
|
|
perf-y += svghelper.o
|
|
|
|
perf-y += sort.o
|
|
|
|
perf-y += hist.o
|
|
|
|
perf-y += util.o
|
|
|
|
perf-y += cpumap.o
|
2019-11-21 00:15:12 +00:00
|
|
|
perf-y += affinity.o
|
2019-02-19 09:58:13 +00:00
|
|
|
perf-y += cputopo.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += cgroup.o
|
|
|
|
perf-y += target.o
|
|
|
|
perf-y += rblist.o
|
|
|
|
perf-y += intlist.o
|
|
|
|
perf-y += vdso.o
|
|
|
|
perf-y += counts.o
|
|
|
|
perf-y += stat.o
|
|
|
|
perf-y += stat-shadow.o
|
|
|
|
perf-y += stat-display.o
|
2020-05-05 14:49:08 +00:00
|
|
|
perf-y += perf_api_probe.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += record.o
|
|
|
|
perf-y += srcline.o
|
|
|
|
perf-y += srccode.o
|
2019-09-18 19:08:52 +00:00
|
|
|
perf-y += synthetic-events.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += data.o
|
|
|
|
perf-y += tsc.o
|
|
|
|
perf-y += cloexec.o
|
|
|
|
perf-y += call-path.o
|
|
|
|
perf-y += rwsem.o
|
|
|
|
perf-y += thread-stack.o
|
2019-09-25 01:14:46 +00:00
|
|
|
perf-y += spark.o
|
2020-09-11 14:48:05 +00:00
|
|
|
perf-y += topdown.o
|
2020-10-09 02:28:39 +00:00
|
|
|
perf-y += stream.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_AUXTRACE) += auxtrace.o
|
|
|
|
perf-$(CONFIG_AUXTRACE) += intel-pt-decoder/
|
|
|
|
perf-$(CONFIG_AUXTRACE) += intel-pt.o
|
|
|
|
perf-$(CONFIG_AUXTRACE) += intel-bts.o
|
|
|
|
perf-$(CONFIG_AUXTRACE) += arm-spe.o
|
2020-05-30 12:24:40 +00:00
|
|
|
perf-$(CONFIG_AUXTRACE) += arm-spe-decoder/
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_AUXTRACE) += s390-cpumsf.o
|
2018-01-17 17:52:11 +00:00
|
|
|
|
|
|
|
ifdef CONFIG_LIBOPENCSD
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_AUXTRACE) += cs-etm.o
|
|
|
|
perf-$(CONFIG_AUXTRACE) += cs-etm-decoder/
|
2018-01-17 17:52:11 +00:00
|
|
|
endif
|
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += parse-branch-options.o
|
|
|
|
perf-y += dump-insn.o
|
|
|
|
perf-y += parse-regs-options.o
|
2020-08-08 02:31:30 +00:00
|
|
|
perf-y += parse-sublevel-options.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += term.o
|
|
|
|
perf-y += help-unknown-cmd.o
|
|
|
|
perf-y += mem-events.o
|
|
|
|
perf-y += vsprintf.o
|
|
|
|
perf-y += units.o
|
|
|
|
perf-y += time-utils.o
|
2020-02-28 09:36:13 +00:00
|
|
|
perf-y += expr-flex.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += expr-bison.o
|
2020-02-28 09:36:12 +00:00
|
|
|
perf-y += expr.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += branch.o
|
|
|
|
perf-y += mem2node.o
|
2020-08-05 09:34:38 +00:00
|
|
|
perf-y += clockid.o
|
2019-02-13 12:32:39 +00:00
|
|
|
|
|
|
|
perf-$(CONFIG_LIBBPF) += bpf-loader.o
|
2019-02-19 19:11:56 +00:00
|
|
|
perf-$(CONFIG_LIBBPF) += bpf_map.o
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_BPF_PROLOGUE) += bpf-prologue.o
|
|
|
|
perf-$(CONFIG_LIBELF) += symbol-elf.o
|
|
|
|
perf-$(CONFIG_LIBELF) += probe-file.o
|
|
|
|
perf-$(CONFIG_LIBELF) += probe-event.o
|
2014-12-29 22:52:25 +00:00
|
|
|
|
2020-05-15 22:17:29 +00:00
|
|
|
ifndef CONFIG_LIBBPF
|
|
|
|
perf-y += hashmap.o
|
|
|
|
endif
|
|
|
|
|
2014-12-29 22:52:25 +00:00
|
|
|
ifndef CONFIG_LIBELF
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += symbol-minimal.o
|
2014-12-29 22:52:25 +00:00
|
|
|
endif
|
|
|
|
|
2017-07-18 20:15:29 +00:00
|
|
|
ifndef CONFIG_SETNS
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += setns.o
|
2017-07-18 20:15:29 +00:00
|
|
|
endif
|
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_DWARF) += probe-finder.o
|
|
|
|
perf-$(CONFIG_DWARF) += dwarf-aux.o
|
|
|
|
perf-$(CONFIG_DWARF) += dwarf-regs.o
|
2014-12-29 23:06:25 +00:00
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_LIBDW_DWARF_UNWIND) += unwind-libdw.o
|
|
|
|
perf-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind-local.o
|
|
|
|
perf-$(CONFIG_LIBUNWIND) += unwind-libunwind.o
|
|
|
|
perf-$(CONFIG_LIBUNWIND_X86) += libunwind/x86_32.o
|
|
|
|
perf-$(CONFIG_LIBUNWIND_AARCH64) += libunwind/arm64.o
|
2014-12-29 23:11:11 +00:00
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_LIBBABELTRACE) += data-convert-bt.o
|
perf data: Add perf data to CTF conversion support
Adding 'perf data convert' to convert perf data file into different
format. This patch adds support for CTF format conversion.
To convert perf.data into CTF run:
$ perf data convert --to-ctf=./ctf-data/
[ perf data convert: Converted 'perf.data' into CTF data './ctf-data/' ]
[ perf data convert: Converted and wrote 11.268 MB (100230 samples) ]
The command will create CTF metadata out of perf.data file (or one
specified via -i option) and then convert all sample events into single
CTF stream.
Each sample_type bit is translated into separated CTF event field apart
from following exceptions:
PERF_SAMPLE_RAW - added in next patch
PERF_SAMPLE_READ - TODO
PERF_SAMPLE_CALLCHAIN - TODO
PERF_SAMPLE_BRANCH_STACK - TODO
PERF_SAMPLE_REGS_USER - TODO
PERF_SAMPLE_STACK_USER - TODO
$ perf --debug=data-convert=2 data convert ...
The converted CTF data could be analyzed by CTF tools, like babletrace
or tracecompass [1].
$ babeltrace ./ctf-data/
[03:19:13.962125533] (+?.?????????) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 1 }
[03:19:13.962130001] (+0.000004468) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 1 }
[03:19:13.962131936] (+0.000001935) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 8 }
[03:19:13.962133732] (+0.000001796) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 114 }
[03:19:13.962135557] (+0.000001825) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 2087 }
[03:19:13.962137627] (+0.000002070) cycles: { }, { ip = 0xFFFFFFFF81361938, tid = 20714, pid = 20714, period = 37582 }
[03:19:13.962161091] (+0.000023464) cycles: { }, { ip = 0xFFFFFFFF8124218F, tid = 20714, pid = 20714, period = 600246 }
[03:19:13.962517569] (+0.000356478) cycles: { }, { ip = 0xFFFFFFFF811A75DB, tid = 20714, pid = 20714, period = 1325731 }
[03:19:13.969518008] (+0.007000439) cycles: { }, { ip = 0x34080917B2, tid = 20714, pid = 20714, period = 1144298 }
The following members to the ctf-environment were decided to be added to
distinguish and specify perf CTF data:
- domain
It says "kernel" because it contains a kernel trace (not to be
confused with a user space like lttng-ust does)
- tracer_name
It says perf. This can be used to distinguish between lttng and perf
CTF based trace.
- version
The kernel version from stream. In addition to release, this is what
it looks like on a Debian kernel:
release = "3.14-1-amd64";
version = "3.14.0";
[1] http://projects.eclipse.org/projects/tools.tracecompass
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Reviewed-by: David Ahern <dsahern@gmail.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jeremie Galarneau <jgalar@efficios.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1424470628-5969-4-git-send-email-jolsa@kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-02-20 22:17:00 +00:00
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += scripting-engines/
|
2014-12-30 12:11:32 +00:00
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_ZLIB) += zlib.o
|
|
|
|
perf-$(CONFIG_LZMA) += lzma.o
|
2019-03-18 17:42:55 +00:00
|
|
|
perf-$(CONFIG_ZSTD) += zstd.o
|
|
|
|
|
2019-08-07 14:44:14 +00:00
|
|
|
perf-$(CONFIG_LIBCAP) += cap.o
|
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += demangle-java.o
|
|
|
|
perf-y += demangle-rust.o
|
2016-03-07 21:48:45 +00:00
|
|
|
|
2016-03-10 16:41:13 +00:00
|
|
|
ifdef CONFIG_JITDUMP
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_LIBELF) += jitdump.o
|
|
|
|
perf-$(CONFIG_LIBELF) += genelf.o
|
|
|
|
perf-$(CONFIG_DWARF) += genelf_debug.o
|
2016-03-07 21:48:45 +00:00
|
|
|
endif
|
2014-12-30 12:30:04 +00:00
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-y += perf-hooks.o
|
2016-11-26 07:03:28 +00:00
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_LIBBPF) += bpf-event.o
|
perf tools: Handle PERF_RECORD_BPF_EVENT
This patch adds basic handling of PERF_RECORD_BPF_EVENT. Tracking of
PERF_RECORD_BPF_EVENT is OFF by default. Option --bpf-event is added to
turn it on.
Committer notes:
Add dummy machine__process_bpf_event() variant that returns zero for
systems without HAVE_LIBBPF_SUPPORT, such as Alpine Linux, unbreaking
the build in such systems.
Remove the needless include <machine.h> from bpf->event.h, provide just
forward declarations for the structs and unions in the parameters, to
reduce compilation time and needless rebuilds when machine.h gets
changed.
Committer testing:
When running with:
# perf record --bpf-event
On an older kernel where PERF_RECORD_BPF_EVENT and PERF_RECORD_KSYMBOL
is not present, we fallback to removing those two bits from
perf_event_attr, making the tool to continue to work on older kernels:
perf_event_attr:
size 112
{ sample_period, sample_freq } 4000
sample_type IP|TID|TIME|PERIOD
read_format ID
disabled 1
inherit 1
mmap 1
comm 1
freq 1
enable_on_exec 1
task 1
precise_ip 3
sample_id_all 1
exclude_guest 1
mmap2 1
comm_exec 1
ksymbol 1
bpf_event 1
------------------------------------------------------------
sys_perf_event_open: pid 5779 cpu 0 group_fd -1 flags 0x8
sys_perf_event_open failed, error -22
switching off bpf_event
------------------------------------------------------------
perf_event_attr:
size 112
{ sample_period, sample_freq } 4000
sample_type IP|TID|TIME|PERIOD
read_format ID
disabled 1
inherit 1
mmap 1
comm 1
freq 1
enable_on_exec 1
task 1
precise_ip 3
sample_id_all 1
exclude_guest 1
mmap2 1
comm_exec 1
ksymbol 1
------------------------------------------------------------
sys_perf_event_open: pid 5779 cpu 0 group_fd -1 flags 0x8
sys_perf_event_open failed, error -22
switching off ksymbol
------------------------------------------------------------
perf_event_attr:
size 112
{ sample_period, sample_freq } 4000
sample_type IP|TID|TIME|PERIOD
read_format ID
disabled 1
inherit 1
mmap 1
comm 1
freq 1
enable_on_exec 1
task 1
precise_ip 3
sample_id_all 1
exclude_guest 1
mmap2 1
comm_exec 1
------------------------------------------------------------
And then proceeds to work without those two features.
As passing --bpf-event is an explicit action performed by the user, perhaps we
should emit a warning telling that the kernel has no such feature, but this can
be done on top of this patch.
Now with a kernel that supports these events, start the 'record --bpf-event -a'
and then run 'perf trace sleep 10000' that will use the BPF
augmented_raw_syscalls.o prebuilt (for another kernel version even) and thus
should generate PERF_RECORD_BPF_EVENT events:
[root@quaco ~]# perf record -e dummy -a --bpf-event
^C[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.713 MB perf.data ]
[root@quaco ~]# bpftool prog
13: cgroup_skb tag 7be49e3934a125ba gpl
loaded_at 2019-01-19T09:09:43-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 13,14
14: cgroup_skb tag 2a142ef67aaad174 gpl
loaded_at 2019-01-19T09:09:43-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 13,14
15: cgroup_skb tag 7be49e3934a125ba gpl
loaded_at 2019-01-19T09:09:43-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 15,16
16: cgroup_skb tag 2a142ef67aaad174 gpl
loaded_at 2019-01-19T09:09:43-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 15,16
17: cgroup_skb tag 7be49e3934a125ba gpl
loaded_at 2019-01-19T09:09:44-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 17,18
18: cgroup_skb tag 2a142ef67aaad174 gpl
loaded_at 2019-01-19T09:09:44-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 17,18
21: cgroup_skb tag 7be49e3934a125ba gpl
loaded_at 2019-01-19T09:09:45-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 21,22
22: cgroup_skb tag 2a142ef67aaad174 gpl
loaded_at 2019-01-19T09:09:45-0300 uid 0
xlated 296B jited 229B memlock 4096B map_ids 21,22
31: tracepoint name sys_enter tag 12504ba9402f952f gpl
loaded_at 2019-01-19T09:19:56-0300 uid 0
xlated 512B jited 374B memlock 4096B map_ids 30,29,28
32: tracepoint name sys_exit tag c1bd85c092d6e4aa gpl
loaded_at 2019-01-19T09:19:56-0300 uid 0
xlated 256B jited 191B memlock 4096B map_ids 30,29
# perf report -D | grep PERF_RECORD_BPF_EVENT | nl
1 0 55834574849 0x4fc8 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 13
2 0 60129542145 0x5118 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 14
3 0 64424509441 0x5268 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 15
4 0 68719476737 0x53b8 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 16
5 0 73014444033 0x5508 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 17
6 0 77309411329 0x5658 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 18
7 0 90194313217 0x57a8 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 21
8 0 94489280513 0x58f8 [0x18]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 22
9 7 620922484360 0xb6390 [0x30]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 29
10 7 620922486018 0xb6410 [0x30]: PERF_RECORD_BPF_EVENT bpf event with type 2, flags 0, id 29
11 7 620922579199 0xb6490 [0x30]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 30
12 7 620922580240 0xb6510 [0x30]: PERF_RECORD_BPF_EVENT bpf event with type 2, flags 0, id 30
13 7 620922765207 0xb6598 [0x30]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 31
14 7 620922874543 0xb6620 [0x30]: PERF_RECORD_BPF_EVENT bpf event with type 1, flags 0, id 32
#
There, the 31 and 32 tracepoint BPF programs put in place by 'perf trace'.
Signed-off-by: Song Liu <songliubraving@fb.com>
Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: kernel-team@fb.com
Cc: netdev@vger.kernel.org
Link: http://lkml.kernel.org/r/20190117161521.1341602-7-songliubraving@fb.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-01-17 16:15:18 +00:00
|
|
|
|
2019-02-13 12:32:39 +00:00
|
|
|
perf-$(CONFIG_CXX) += c++/
|
2016-11-26 07:03:34 +00:00
|
|
|
|
2020-05-05 18:29:43 +00:00
|
|
|
perf-$(CONFIG_LIBPFM4) += pfm.o
|
|
|
|
|
2014-12-29 16:42:46 +00:00
|
|
|
CFLAGS_config.o += -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
|
2018-05-04 13:37:27 +00:00
|
|
|
CFLAGS_llvm-utils.o += -DPERF_INCLUDE_DIR="BUILD_STR($(perf_include_dir_SQ))"
|
|
|
|
|
2015-11-30 09:02:23 +00:00
|
|
|
# avoid compiler warnings in 32-bit mode
|
|
|
|
CFLAGS_genelf_debug.o += -Wno-packed
|
2014-12-29 16:42:46 +00:00
|
|
|
|
2020-06-19 04:33:51 +00:00
|
|
|
$(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-flex.h: util/parse-events.l $(OUTPUT)util/parse-events-bison.c
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2020-06-19 04:33:51 +00:00
|
|
|
$(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/parse-events-flex.c \
|
|
|
|
--header-file=$(OUTPUT)util/parse-events-flex.h $(PARSER_DEBUG_FLEX) $<
|
2014-12-29 16:42:46 +00:00
|
|
|
|
2020-06-19 04:33:52 +00:00
|
|
|
$(OUTPUT)util/parse-events-bison.c $(OUTPUT)util/parse-events-bison.h: util/parse-events.y
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2020-06-19 04:33:52 +00:00
|
|
|
$(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
|
|
|
|
-o $(OUTPUT)util/parse-events-bison.c -p parse_events_
|
2014-12-29 16:42:46 +00:00
|
|
|
|
2020-06-19 04:33:51 +00:00
|
|
|
$(OUTPUT)util/expr-flex.c $(OUTPUT)util/expr-flex.h: util/expr.l $(OUTPUT)util/expr-bison.c
|
2020-02-28 09:36:13 +00:00
|
|
|
$(call rule_mkdir)
|
2020-06-19 04:33:51 +00:00
|
|
|
$(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/expr-flex.c \
|
|
|
|
--header-file=$(OUTPUT)util/expr-flex.h $(PARSER_DEBUG_FLEX) $<
|
2020-02-28 09:36:13 +00:00
|
|
|
|
2020-06-19 04:33:52 +00:00
|
|
|
$(OUTPUT)util/expr-bison.c $(OUTPUT)util/expr-bison.h: util/expr.y
|
2017-03-20 20:17:05 +00:00
|
|
|
$(call rule_mkdir)
|
2020-06-19 04:33:52 +00:00
|
|
|
$(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
|
|
|
|
-o $(OUTPUT)util/expr-bison.c -p expr_
|
2017-03-20 20:17:05 +00:00
|
|
|
|
2020-06-19 04:33:51 +00:00
|
|
|
$(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-flex.h: util/pmu.l $(OUTPUT)util/pmu-bison.c
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2020-06-19 04:33:51 +00:00
|
|
|
$(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/pmu-flex.c \
|
|
|
|
--header-file=$(OUTPUT)util/pmu-flex.h $(PARSER_DEBUG_FLEX) $<
|
2014-12-29 16:42:46 +00:00
|
|
|
|
2020-06-19 04:33:52 +00:00
|
|
|
$(OUTPUT)util/pmu-bison.c $(OUTPUT)util/pmu-bison.h: util/pmu.y
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2020-06-19 04:33:52 +00:00
|
|
|
$(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
|
|
|
|
-o $(OUTPUT)util/pmu-bison.c -p perf_pmu_
|
2014-12-29 16:42:46 +00:00
|
|
|
|
2020-06-19 04:33:53 +00:00
|
|
|
FLEX_GE_26 := $(shell expr $(shell $(FLEX) --version | sed -e 's/flex \([0-9]\+\).\([0-9]\+\)/\1\2/g') \>\= 26)
|
|
|
|
ifeq ($(FLEX_GE_26),1)
|
|
|
|
flex_flags := -Wno-switch-enum -Wno-switch-default -Wno-unused-function -Wno-redundant-decls -Wno-sign-compare -Wno-unused-parameter -Wno-missing-prototypes -Wno-missing-declarations
|
|
|
|
CC_HASNT_MISLEADING_INDENTATION := $(shell echo "int main(void) { return 0 }" | $(CC) -Werror -Wno-misleading-indentation -o /dev/null -xc - 2>&1 | grep -q -- -Wno-misleading-indentation ; echo $$?)
|
|
|
|
ifeq ($(CC_HASNT_MISLEADING_INDENTATION), 1)
|
|
|
|
flex_flags += -Wno-misleading-indentation
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
flex_flags := -w
|
|
|
|
endif
|
|
|
|
CFLAGS_parse-events-flex.o += $(flex_flags)
|
|
|
|
CFLAGS_pmu-flex.o += $(flex_flags)
|
|
|
|
CFLAGS_expr-flex.o += $(flex_flags)
|
2020-06-19 04:33:56 +00:00
|
|
|
|
|
|
|
bison_flags := -DYYENABLE_NLS=0
|
|
|
|
BISON_GE_35 := $(shell expr $(shell $(BISON) --version | grep bison | sed -e 's/.\+ \([0-9]\+\).\([0-9]\+\)/\1\2/g') \>\= 35)
|
|
|
|
ifeq ($(BISON_GE_35),1)
|
|
|
|
bison_flags += -Wno-unused-parameter -Wno-nested-externs -Wno-implicit-function-declaration -Wno-switch-enum
|
|
|
|
else
|
|
|
|
bison_flags += -w
|
|
|
|
endif
|
|
|
|
CFLAGS_parse-events-bison.o += $(bison_flags)
|
|
|
|
CFLAGS_pmu-bison.o += -DYYLTYPE_IS_TRIVIAL=0 $(bison_flags)
|
|
|
|
CFLAGS_expr-bison.o += -DYYLTYPE_IS_TRIVIAL=0 $(bison_flags)
|
2014-12-29 16:42:46 +00:00
|
|
|
|
|
|
|
$(OUTPUT)util/parse-events.o: $(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-bison.c
|
|
|
|
$(OUTPUT)util/pmu.o: $(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-bison.c
|
2020-02-28 09:36:13 +00:00
|
|
|
$(OUTPUT)util/expr.o: $(OUTPUT)util/expr-flex.c $(OUTPUT)util/expr-bison.c
|
2014-12-29 16:42:46 +00:00
|
|
|
|
2016-01-08 15:33:37 +00:00
|
|
|
CFLAGS_bitmap.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
|
2016-01-08 13:46:52 +00:00
|
|
|
CFLAGS_find_bit.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
|
2014-12-29 16:42:46 +00:00
|
|
|
CFLAGS_rbtree.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
|
2015-11-16 14:36:29 +00:00
|
|
|
CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
|
2014-12-29 16:42:46 +00:00
|
|
|
CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
|
|
|
|
CFLAGS_parse-events.o += -Wno-redundant-decls
|
2020-02-28 09:36:13 +00:00
|
|
|
CFLAGS_expr.o += -Wno-redundant-decls
|
2017-01-16 15:22:37 +00:00
|
|
|
CFLAGS_header.o += -include $(OUTPUT)PERF-VERSION-FILE
|
2014-12-29 16:42:46 +00:00
|
|
|
|
|
|
|
$(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2014-12-29 16:42:46 +00:00
|
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
|
2019-06-26 18:27:58 +00:00
|
|
|
$(OUTPUT)util/argv_split.o: ../lib/argv_split.c FORCE
|
|
|
|
$(call rule_mkdir)
|
|
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
|
2016-01-08 15:33:37 +00:00
|
|
|
$(OUTPUT)util/bitmap.o: ../lib/bitmap.c FORCE
|
|
|
|
$(call rule_mkdir)
|
|
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
|
tools perf: Move from sane_ctype.h obtained from git to the Linux's original
We got the sane_ctype.h headers from git and kept using it so far, but
since that code originally came from the kernel sources to the git
sources, perhaps its better to just use the one in the kernel, so that
we can leverage tools/perf/check_headers.sh to be notified when our copy
gets out of sync, i.e. when fixes or goodies are added to the code we've
copied.
This will help with things like tools/lib/string.c where we want to have
more things in common with the kernel, such as strim(), skip_spaces(),
etc so as to go on removing the things that we have in tools/perf/util/
and instead using the code in the kernel, indirectly and removing things
like EXPORT_SYMBOL(), etc, getting notified when fixes and improvements
are made to the original code.
Hopefully this also should help with reducing the difference of code
hosted in tools/ to the one in the kernel proper.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-7k9868l713wqtgo01xxygn12@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-06-25 20:27:31 +00:00
|
|
|
$(OUTPUT)util/ctype.o: ../lib/ctype.c FORCE
|
|
|
|
$(call rule_mkdir)
|
|
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
|
2016-01-08 13:46:52 +00:00
|
|
|
$(OUTPUT)util/find_bit.o: ../lib/find_bit.c FORCE
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2014-12-29 16:42:46 +00:00
|
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
|
2015-07-06 01:48:21 +00:00
|
|
|
$(OUTPUT)util/rbtree.o: ../lib/rbtree.c FORCE
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2014-12-29 16:42:46 +00:00
|
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
|
2015-11-16 14:36:29 +00:00
|
|
|
$(OUTPUT)util/libstring.o: ../lib/string.c FORCE
|
|
|
|
$(call rule_mkdir)
|
|
|
|
$(call if_changed_dep,cc_o_c)
|
|
|
|
|
2015-07-09 19:27:25 +00:00
|
|
|
$(OUTPUT)util/hweight.o: ../lib/hweight.c FORCE
|
2014-12-30 17:44:38 +00:00
|
|
|
$(call rule_mkdir)
|
2014-12-29 16:42:46 +00:00
|
|
|
$(call if_changed_dep,cc_o_c)
|
2016-07-07 18:42:33 +00:00
|
|
|
|
|
|
|
$(OUTPUT)util/vsprintf.o: ../lib/vsprintf.c FORCE
|
|
|
|
$(call rule_mkdir)
|
|
|
|
$(call if_changed_dep,cc_o_c)
|