* [GIT PULL 0/8] perf/core improvements and fixes
@ 2015-10-29 23:05 Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 1/8] perf trace: Add cmd string table to decode sys_bpf first arg Arnaldo Carvalho de Melo
` (8 more replies)
0 siblings, 9 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, Brendan Gregg, Daniel Borkmann,
David Ahern, He Kuang, Jiri Olsa, Kaixu Xia, Kan Liang,
Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, pi3orama,
Rabin Vincent, Stephane Eranian, Wang Nan, Yuanfang Chen,
Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
This one gets us to pass .c files that gets built and
loaded, next step will be to be able to access function arguments,
for which there are patches available, but I'm still reviewing them.
Please consider pulling,
- Arnaldo
The following changes since commit 66a565c203bc31b76969711fbd92da11bee2f129:
Merge tag 'perf-ebpf-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-29 13:17:56 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 7ed4915ad60788d6b846e2cd034f49ee15698143:
perf unwind: Pass symbol source to libunwind (2015-10-29 17:48:38 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
New features:
- Allow passing C language eBPF scriptlets via --event in all tools,
so that it gets built using clang and then pass it to the kernel via
sys_bpf() (Wang Nan)
- Wire up the loaded ebpf object file with associated kprobes, so that
it can determine if the kprobes will be filtered or not (Wang Nan)
User visible:
- Add cmd string table to decode sys_bpf first arg in 'trace' (Arnaldo Carvalho de Melo)
- Enable printing of branch stack in 'perf script' (Stephane Eranian)
- Pass the right file with debug info to libunwind (Rabin Vincent)
Build Fixes:
- Make sure fixdep is built before libbpf, fixing a race (Jiri Olsa)
- Fix libiberty feature detection (Rabin Vincent)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf trace: Add cmd string table to decode sys_bpf first arg
Jiri Olsa (1):
perf tools: Make sure fixdep is built before libbpf
Rabin Vincent (2):
tools build: Fix libiberty feature detection
perf unwind: Pass symbol source to libunwind
Stephane Eranian (1):
perf script: Enable printing of branch stack
Wang Nan (3):
perf bpf: Attach eBPF filter to perf event
perf record: Add clang options for compiling BPF scripts
perf tools: Compile scriptlets to BPF objects when passing '.c' to --event
tools/build/feature/Makefile | 4 +-
tools/perf/Documentation/perf-record.txt | 6 +++
tools/perf/Documentation/perf-script.txt | 14 +++++-
tools/perf/Makefile.perf | 2 +-
tools/perf/builtin-record.c | 7 +++
tools/perf/builtin-script.c | 82 +++++++++++++++++++++++++++++++-
tools/perf/builtin-trace.c | 7 +++
tools/perf/tests/bpf-script-example.c | 44 +++++++++++++++++
tools/perf/util/bpf-loader.c | 17 ++++++-
tools/perf/util/bpf-loader.h | 5 +-
tools/perf/util/evsel.c | 17 +++++++
tools/perf/util/evsel.h | 1 +
tools/perf/util/parse-events.c | 11 ++++-
tools/perf/util/parse-events.h | 3 +-
tools/perf/util/parse-events.l | 3 ++
tools/perf/util/parse-events.y | 15 +++++-
tools/perf/util/unwind-libunwind.c | 5 +-
17 files changed, 227 insertions(+), 16 deletions(-)
create mode 100644 tools/perf/tests/bpf-script-example.c
^ permalink raw reply [flat|nested] 31+ messages in thread* [PATCH 1/8] perf trace: Add cmd string table to decode sys_bpf first arg
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 2/8] perf script: Enable printing of branch stack Arnaldo Carvalho de Melo
` (7 subsequent siblings)
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, David Ahern, Jiri Olsa, Namhyung Kim,
Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
# perf trace -e bpf perf record -e /tmp/foo.o -a
362.779 (0.130 ms): perf/3451 bpf(cmd: PROG_LOAD, uattr: 0x7ffe9a6825d0, size: 48) = 3
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-2b0nknu53baz9e0wj4thcdd8@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 93b80f12f35e..c783d8fd3a80 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -585,6 +585,12 @@ static size_t syscall_arg__scnprintf_futex_op(char *bf, size_t size, struct sysc
#define SCA_FUTEX_OP syscall_arg__scnprintf_futex_op
+static const char *bpf_cmd[] = {
+ "MAP_CREATE", "MAP_LOOKUP_ELEM", "MAP_UPDATE_ELEM", "MAP_DELETE_ELEM",
+ "MAP_GET_NEXT_KEY", "PROG_LOAD",
+};
+static DEFINE_STRARRAY(bpf_cmd);
+
static const char *epoll_ctl_ops[] = { "ADD", "DEL", "MOD", };
static DEFINE_STRARRAY_OFFSET(epoll_ctl_ops, 1);
@@ -1011,6 +1017,7 @@ static struct syscall_fmt {
.arg_scnprintf = { [0] = SCA_FILENAME, /* filename */
[1] = SCA_ACCMODE, /* mode */ }, },
{ .name = "arch_prctl", .errmsg = true, .alias = "prctl", },
+ { .name = "bpf", .errmsg = true, STRARRAY(0, cmd, bpf_cmd), },
{ .name = "brk", .hexret = true,
.arg_scnprintf = { [0] = SCA_HEX, /* brk */ }, },
{ .name = "chdir", .errmsg = true,
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* [PATCH 2/8] perf script: Enable printing of branch stack
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 1/8] perf trace: Add cmd string table to decode sys_bpf first arg Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 3/8] perf tools: Make sure fixdep is built before libbpf Arnaldo Carvalho de Melo
` (6 subsequent siblings)
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Stephane Eranian, Adrian Hunter, Andi Kleen,
David Ahern, Jiri Olsa, Kan Liang, Namhyung Kim, Peter Zijlstra,
Yuanfang Chen, Arnaldo Carvalho de Melo
From: Stephane Eranian <eranian@google.com>
This patch improves perf script by enabling printing of the
branch stack via the 'brstack' and 'brstacksym' arguments to
the field selection option -F. The option is off by default
and operates only if the perf.data file has branch stack content.
The branches are printed in to/from pairs. The most recent branch
is printed first. The number of branch entries vary based on the
underlying hardware and filtering used.
The brstack prints FROM/TO addresses in raw hexadecimal format.
The brstacksym prints FROM/TO addresses in symbolic form wherever
possible.
$ perf script -F ip,brstack
5d3000 0x401aa0/0x5d2000/M/-/-/-/0 ...
$ perf script -F ip,brstacksym
4011e0 noploop+0x0/noploop+0x0/P/-/-/0
The notation F/T/M/X/A/C describes the attributes of the branch.
F=from, T=to, M/P=misprediction/prediction, X=TSX, A=TSX abort, C=cycles (SKL)
Signed-off-by: Stephane Eranian <eranian@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Yuanfang Chen <cyfmxc@gmail.com>
Link: http://lkml.kernel.org/r/1441039273-16260-5-git-send-email-eranian@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-script.txt | 14 +++++-
tools/perf/builtin-script.c | 82 +++++++++++++++++++++++++++++++-
2 files changed, 93 insertions(+), 3 deletions(-)
diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index b3b42f9285df..382ddfb45d1d 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -112,11 +112,11 @@ OPTIONS
--debug-mode::
Do various checks like samples ordering and lost events.
--f::
+-F::
--fields::
Comma separated list of fields to print. Options are:
comm, tid, pid, time, cpu, event, trace, ip, sym, dso, addr, symoff,
- srcline, period, iregs, flags.
+ srcline, period, iregs, brstack, brstacksym, flags.
Field list can be prepended with the type, trace, sw or hw,
to indicate to which event type the field list applies.
e.g., -f sw:comm,tid,time,ip,sym and -f trace:time,cpu,trace
@@ -175,6 +175,16 @@ OPTIONS
Finally, a user may not set fields to none for all event types.
i.e., -f "" is not allowed.
+ The brstack output includes branch related information with raw addresses using the
+ /v/v/v/v/ syntax in the following order:
+ FROM: branch source instruction
+ TO : branch target instruction
+ M/P/-: M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
+ X/- : X=branch inside a transactional region, -=not in transaction region or not supported
+ A/- : A=TSX abort entry, -=not aborted region or not supported
+
+ The brstacksym is identical to brstack, except that the FROM and TO addresses are printed in a symbolic form if possible.
+
-k::
--vmlinux=<file>::
vmlinux pathname
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 278acb22f029..72b5deb4bd79 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -51,6 +51,8 @@ enum perf_output_field {
PERF_OUTPUT_SRCLINE = 1U << 12,
PERF_OUTPUT_PERIOD = 1U << 13,
PERF_OUTPUT_IREGS = 1U << 14,
+ PERF_OUTPUT_BRSTACK = 1U << 15,
+ PERF_OUTPUT_BRSTACKSYM = 1U << 16,
};
struct output_option {
@@ -72,6 +74,8 @@ struct output_option {
{.str = "srcline", .field = PERF_OUTPUT_SRCLINE},
{.str = "period", .field = PERF_OUTPUT_PERIOD},
{.str = "iregs", .field = PERF_OUTPUT_IREGS},
+ {.str = "brstack", .field = PERF_OUTPUT_BRSTACK},
+ {.str = "brstacksym", .field = PERF_OUTPUT_BRSTACKSYM},
};
/* default set to maintain compatibility with current format */
@@ -425,6 +429,77 @@ static void print_sample_start(struct perf_sample *sample,
}
}
+static inline char
+mispred_str(struct branch_entry *br)
+{
+ if (!(br->flags.mispred || br->flags.predicted))
+ return '-';
+
+ return br->flags.predicted ? 'P' : 'M';
+}
+
+static void print_sample_brstack(union perf_event *event __maybe_unused,
+ struct perf_sample *sample,
+ struct thread *thread __maybe_unused,
+ struct perf_event_attr *attr __maybe_unused)
+{
+ struct branch_stack *br = sample->branch_stack;
+ u64 i;
+
+ if (!(br && br->nr))
+ return;
+
+ for (i = 0; i < br->nr; i++) {
+ printf(" 0x%"PRIx64"/0x%"PRIx64"/%c/%c/%c/%d ",
+ br->entries[i].from,
+ br->entries[i].to,
+ mispred_str( br->entries + i),
+ br->entries[i].flags.in_tx? 'X' : '-',
+ br->entries[i].flags.abort? 'A' : '-',
+ br->entries[i].flags.cycles);
+ }
+}
+
+static void print_sample_brstacksym(union perf_event *event __maybe_unused,
+ struct perf_sample *sample,
+ struct thread *thread __maybe_unused,
+ struct perf_event_attr *attr __maybe_unused)
+{
+ struct branch_stack *br = sample->branch_stack;
+ struct addr_location alf, alt;
+ u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
+ u64 i, from, to;
+
+ if (!(br && br->nr))
+ return;
+
+ for (i = 0; i < br->nr; i++) {
+
+ memset(&alf, 0, sizeof(alf));
+ memset(&alt, 0, sizeof(alt));
+ from = br->entries[i].from;
+ to = br->entries[i].to;
+
+ thread__find_addr_map(thread, cpumode, MAP__FUNCTION, from, &alf);
+ if (alf.map)
+ alf.sym = map__find_symbol(alf.map, alf.addr, NULL);
+
+ thread__find_addr_map(thread, cpumode, MAP__FUNCTION, to, &alt);
+ if (alt.map)
+ alt.sym = map__find_symbol(alt.map, alt.addr, NULL);
+
+ symbol__fprintf_symname_offs(alf.sym, &alf, stdout);
+ putchar('/');
+ symbol__fprintf_symname_offs(alt.sym, &alt, stdout);
+ printf("/%c/%c/%c/%d ",
+ mispred_str( br->entries + i),
+ br->entries[i].flags.in_tx? 'X' : '-',
+ br->entries[i].flags.abort? 'A' : '-',
+ br->entries[i].flags.cycles);
+ }
+}
+
+
static void print_sample_addr(union perf_event *event,
struct perf_sample *sample,
struct thread *thread,
@@ -560,6 +635,11 @@ static void process_event(union perf_event *event, struct perf_sample *sample,
if (PRINT_FIELD(IREGS))
print_sample_iregs(event, sample, thread, attr);
+ if (PRINT_FIELD(BRSTACK))
+ print_sample_brstack(event, sample, thread, attr);
+ else if (PRINT_FIELD(BRSTACKSYM))
+ print_sample_brstacksym(event, sample, thread, attr);
+
printf("\n");
}
@@ -1681,7 +1761,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
"comma separated output fields prepend with 'type:'. "
"Valid types: hw,sw,trace,raw. "
"Fields: comm,tid,pid,time,cpu,event,trace,ip,sym,dso,"
- "addr,symoff,period,iregs,flags", parse_output_fields),
+ "addr,symoff,period,iregs,brstack,brstacksym,flags", parse_output_fields),
OPT_BOOLEAN('a', "all-cpus", &system_wide,
"system-wide collection from all CPUs"),
OPT_STRING('S', "symbols", &symbol_conf.sym_list_str, "symbol[,symbol...]",
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* [PATCH 3/8] perf tools: Make sure fixdep is built before libbpf
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 1/8] perf trace: Add cmd string table to decode sys_bpf first arg Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 2/8] perf script: Enable printing of branch stack Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 4/8] perf bpf: Attach eBPF filter to perf event Arnaldo Carvalho de Melo
` (5 subsequent siblings)
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jiri Olsa, Wang Nan, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
While doing 'make -C tools/perf build-test':
LD fixdep-in.o
LINK fixdep
/bin/sh: /home/acme/git/linux/tools/build/fixdep: Permission denied
make[6]: *** [bpf.o] Error 1
make[5]: *** [libbpf-in.o] Error 2
make[4]: *** [/home/acme/git/linux/tools/lib/bpf/libbpf.a] Error 2
make[4]: *** Waiting for unfinished jobs....
The fixdep tool needs to be built as the first binary. Libraries are
built in paralel, so each of them needs to depend on fixdep target.
Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20151028204450.GA25553@krava.redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Makefile.perf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 1e2e2d1d26b7..0d19d5447d6c 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -430,7 +430,7 @@ $(LIBAPI)-clean:
$(call QUIET_CLEAN, libapi)
$(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null
-$(LIBBPF): FORCE
+$(LIBBPF): fixdep FORCE
$(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a
$(LIBBPF)-clean:
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* [PATCH 4/8] perf bpf: Attach eBPF filter to perf event
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2015-10-29 23:05 ` [PATCH 3/8] perf tools: Make sure fixdep is built before libbpf Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 5/8] perf record: Add clang options for compiling BPF scripts Arnaldo Carvalho de Melo
` (4 subsequent siblings)
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Brendan Gregg,
Daniel Borkmann, David Ahern, He Kuang, Jiri Olsa, Kaixu Xia,
Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Zefan Li,
pi3orama, Arnaldo Carvalho de Melo
From: Wang Nan <wangnan0@huawei.com>
This is the final patch which makes basic BPF filter work. After
applying this patch, users are allowed to use BPF filter like:
# perf record --event ./hello_world.o ls
A bpf_fd field is appended to 'struct evsel', and setup during the
callback function add_bpf_event() for each 'probe_trace_event'.
PERF_EVENT_IOC_SET_BPF ioctl is used to attach eBPF program to a newly
created perf event. The file descriptor of the eBPF program is passed to
perf record using previous patches, and stored into evsel->bpf_fd.
It is possible that different perf event are created for one kprobe
events for different CPUs. In this case, when trying to call the ioctl,
EEXIST will be return. This patch doesn't treat it as an error.
Committer note:
The bpf proggie used so far:
__attribute__((section("fork=_do_fork"), used))
int fork(void *ctx)
{
return 0;
}
char _license[] __attribute__((section("license"), used)) = "GPL";
int _version __attribute__((section("version"), used)) = 0x40300;
failed to produce any samples, even with forks happening and it being
running in system wide mode.
That is because now the filter is being associated, and the code above
always returns zero, meaning that all forks will be probed but filtered
away ;-/
Change it to 'return 1;' instead and after that:
# trace --no-syscalls --event /tmp/foo.o
0.000 perf_bpf_probe:fork:(ffffffff8109be30))
2.333 perf_bpf_probe:fork:(ffffffff8109be30))
3.725 perf_bpf_probe:fork:(ffffffff8109be30))
4.550 perf_bpf_probe:fork:(ffffffff8109be30))
^C#
And it works with all tools, including 'perf trace'.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: David Ahern <dsahern@gmail.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kaixu Xia <xiakaixu@huawei.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1444826502-49291-8-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evsel.c | 17 +++++++++++++++++
tools/perf/util/evsel.h | 1 +
tools/perf/util/parse-events.c | 6 ++++++
3 files changed, 24 insertions(+)
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 3ac4ee9c6a6e..397fb4ed3c97 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -208,6 +208,7 @@ void perf_evsel__init(struct perf_evsel *evsel,
evsel->unit = "";
evsel->scale = 1.0;
evsel->evlist = NULL;
+ evsel->bpf_fd = -1;
INIT_LIST_HEAD(&evsel->node);
INIT_LIST_HEAD(&evsel->config_terms);
perf_evsel__object.init(evsel);
@@ -1356,6 +1357,22 @@ retry_open:
err);
goto try_fallback;
}
+
+ if (evsel->bpf_fd >= 0) {
+ int evt_fd = FD(evsel, cpu, thread);
+ int bpf_fd = evsel->bpf_fd;
+
+ err = ioctl(evt_fd,
+ PERF_EVENT_IOC_SET_BPF,
+ bpf_fd);
+ if (err && errno != EEXIST) {
+ pr_err("failed to attach bpf fd %d: %s\n",
+ bpf_fd, strerror(errno));
+ err = -EINVAL;
+ goto out_close;
+ }
+ }
+
set_rlimit = NO_CHANGE;
/*
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 1e8ff1906f71..0e49bd742c63 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -123,6 +123,7 @@ struct perf_evsel {
char *group_name;
bool cmdline_group_boundary;
struct list_head config_terms;
+ int bpf_fd;
};
union u64_swap {
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index d97b03710331..cee8c619ec7e 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -542,6 +542,7 @@ static int add_bpf_event(struct probe_trace_event *tev, int fd,
struct __add_bpf_event_param *param = _param;
struct parse_events_evlist *evlist = param->data;
struct list_head *list = param->list;
+ struct perf_evsel *pos;
int err;
pr_debug("add bpf event %s:%s and attach bpf program %d\n",
@@ -562,6 +563,11 @@ static int add_bpf_event(struct probe_trace_event *tev, int fd,
}
pr_debug("adding %s:%s\n", tev->group, tev->event);
+ list_for_each_entry(pos, &new_evsels, node) {
+ pr_debug("adding %s:%s to %p\n",
+ tev->group, tev->event, pos);
+ pos->bpf_fd = fd;
+ }
list_splice(&new_evsels, list);
return 0;
}
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* [PATCH 5/8] perf record: Add clang options for compiling BPF scripts
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2015-10-29 23:05 ` [PATCH 4/8] perf bpf: Attach eBPF filter to perf event Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 6/8] perf tools: Compile scriptlets to BPF objects when passing '.c' to --event Arnaldo Carvalho de Melo
` (3 subsequent siblings)
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Brendan Gregg,
Daniel Borkmann, David Ahern, He Kuang, Jiri Olsa, Kaixu Xia,
Masami Hiramatsu, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Zefan Li, pi3orama, Arnaldo Carvalho de Melo
From: Wang Nan <wangnan0@huawei.com>
Although previous patch allows setting BPF compiler related options in
perfconfig, on some ad-hoc situation it still requires passing options
through cmdline. This patch introduces 2 options to 'perf record' for
this propose: --clang-path and --clang-opt.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: David Ahern <dsahern@gmail.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kaixu Xia <xiakaixu@huawei.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1444826502-49291-9-git-send-email-wangnan0@huawei.com
[ Add the new options to the 'record' man page ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-record.txt | 6 ++++++
tools/perf/builtin-record.c | 7 +++++++
2 files changed, 13 insertions(+)
diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
index 7ff6a9d0ea0d..e630a7d2c348 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -314,6 +314,12 @@ This option sets the time out limit. The default value is 500 ms.
Record context switch events i.e. events of type PERF_RECORD_SWITCH or
PERF_RECORD_SWITCH_CPU_WIDE.
+--clang-path::
+Path to clang binary to use for compiling BPF scriptlets.
+
+--clang-opt::
+Options passed to clang when compiling BPF scriptlets.
+
SEE ALSO
--------
linkperf:perf-stat[1], linkperf:perf-list[1]
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index de02267c73d8..199fc31e3919 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -31,6 +31,7 @@
#include "util/auxtrace.h"
#include "util/parse-branch-options.h"
#include "util/parse-regs-options.h"
+#include "util/llvm-utils.h"
#include <unistd.h>
#include <sched.h>
@@ -1112,6 +1113,12 @@ struct option __record_options[] = {
"per thread proc mmap processing timeout in ms"),
OPT_BOOLEAN(0, "switch-events", &record.opts.record_switch_events,
"Record context switch events"),
+#ifdef HAVE_LIBBPF_SUPPORT
+ OPT_STRING(0, "clang-path", &llvm_param.clang_path, "clang path",
+ "clang binary to use for compiling BPF scriptlets"),
+ OPT_STRING(0, "clang-opt", &llvm_param.clang_opt, "clang options",
+ "options passed to clang when compiling BPF scriptlets"),
+#endif
OPT_END()
};
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* [PATCH 6/8] perf tools: Compile scriptlets to BPF objects when passing '.c' to --event
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2015-10-29 23:05 ` [PATCH 5/8] perf record: Add clang options for compiling BPF scripts Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 7/8] tools build: Fix libiberty feature detection Arnaldo Carvalho de Melo
` (2 subsequent siblings)
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Wang Nan, Brendan Gregg, Daniel Borkmann,
David Ahern, He Kuang, Jiri Olsa, Kaixu Xia, Masami Hiramatsu,
Namhyung Kim, Peter Zijlstra, Zefan Li, pi3orama,
Arnaldo Carvalho de Melo
From: Wang Nan <wangnan0@huawei.com>
This patch provides infrastructure for passing source files to --event
directly using:
# perf record --event bpf-file.c command
This patch does following works:
1) Allow passing '.c' file to '--event'. parse_events_load_bpf() is
expanded to allow caller tell it whether the passed file is source
file or object.
2) llvm__compile_bpf() is called to compile the '.c' file, the result
is saved into memory. Use bpf_object__open_buffer() to load the
in-memory object.
Introduces a bpf-script-example.c so we can manually test it:
# perf record --clang-opt "-DLINUX_VERSION_CODE=0x40200" --event ./bpf-script-example.c sleep 1
Note that '--clang-opt' must put before '--event'.
Futher patches will merge it into a testcase so can be tested automatically.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: David Ahern <dsahern@gmail.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kaixu Xia <xiakaixu@huawei.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1444826502-49291-10-git-send-email-wangnan0@huawei.com
Signed-off-by: He Kuang <hekuang@huawei.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/bpf-script-example.c | 44 +++++++++++++++++++++++++++++++++++
tools/perf/util/bpf-loader.c | 17 ++++++++++++--
tools/perf/util/bpf-loader.h | 5 ++--
tools/perf/util/parse-events.c | 5 ++--
tools/perf/util/parse-events.h | 3 ++-
tools/perf/util/parse-events.l | 3 +++
tools/perf/util/parse-events.y | 15 ++++++++++--
7 files changed, 83 insertions(+), 9 deletions(-)
create mode 100644 tools/perf/tests/bpf-script-example.c
diff --git a/tools/perf/tests/bpf-script-example.c b/tools/perf/tests/bpf-script-example.c
new file mode 100644
index 000000000000..410a70b93b93
--- /dev/null
+++ b/tools/perf/tests/bpf-script-example.c
@@ -0,0 +1,44 @@
+#ifndef LINUX_VERSION_CODE
+# error Need LINUX_VERSION_CODE
+# error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x40200" into llvm section of ~/.perfconfig'
+#endif
+#define BPF_ANY 0
+#define BPF_MAP_TYPE_ARRAY 2
+#define BPF_FUNC_map_lookup_elem 1
+#define BPF_FUNC_map_update_elem 2
+
+static void *(*bpf_map_lookup_elem)(void *map, void *key) =
+ (void *) BPF_FUNC_map_lookup_elem;
+static void *(*bpf_map_update_elem)(void *map, void *key, void *value, int flags) =
+ (void *) BPF_FUNC_map_update_elem;
+
+struct bpf_map_def {
+ unsigned int type;
+ unsigned int key_size;
+ unsigned int value_size;
+ unsigned int max_entries;
+};
+
+#define SEC(NAME) __attribute__((section(NAME), used))
+struct bpf_map_def SEC("maps") flip_table = {
+ .type = BPF_MAP_TYPE_ARRAY,
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .max_entries = 1,
+};
+
+SEC("func=sys_epoll_pwait")
+int bpf_func__sys_epoll_pwait(void *ctx)
+{
+ int ind =0;
+ int *flag = bpf_map_lookup_elem(&flip_table, &ind);
+ int new_flag;
+ if (!flag)
+ return 0;
+ /* flip flag and store back */
+ new_flag = !*flag;
+ bpf_map_update_elem(&flip_table, &ind, &new_flag, BPF_ANY);
+ return new_flag;
+}
+char _license[] SEC("license") = "GPL";
+int _version SEC("version") = LINUX_VERSION_CODE;
diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c
index aa784a498c48..ba6f7526b282 100644
--- a/tools/perf/util/bpf-loader.c
+++ b/tools/perf/util/bpf-loader.c
@@ -12,6 +12,7 @@
#include "bpf-loader.h"
#include "probe-event.h"
#include "probe-finder.h" // for MAX_PROBES
+#include "llvm-utils.h"
#define DEFINE_PRINT_FN(name, level) \
static int libbpf_##name(const char *fmt, ...) \
@@ -33,7 +34,7 @@ struct bpf_prog_priv {
struct perf_probe_event pev;
};
-struct bpf_object *bpf__prepare_load(const char *filename)
+struct bpf_object *bpf__prepare_load(const char *filename, bool source)
{
struct bpf_object *obj;
static bool libbpf_initialized;
@@ -45,7 +46,19 @@ struct bpf_object *bpf__prepare_load(const char *filename)
libbpf_initialized = true;
}
- obj = bpf_object__open(filename);
+ if (source) {
+ int err;
+ void *obj_buf;
+ size_t obj_buf_sz;
+
+ err = llvm__compile_bpf(filename, &obj_buf, &obj_buf_sz);
+ if (err)
+ return ERR_PTR(err);
+ obj = bpf_object__open_buffer(obj_buf, obj_buf_sz, filename);
+ free(obj_buf);
+ } else
+ obj = bpf_object__open(filename);
+
if (!obj) {
pr_debug("bpf: failed to load %s\n", filename);
return ERR_PTR(-EINVAL);
diff --git a/tools/perf/util/bpf-loader.h b/tools/perf/util/bpf-loader.h
index a8f25ee06fc5..ccd8d7fd79d3 100644
--- a/tools/perf/util/bpf-loader.h
+++ b/tools/perf/util/bpf-loader.h
@@ -18,7 +18,7 @@ typedef int (*bpf_prog_iter_callback_t)(struct probe_trace_event *tev,
int fd, void *arg);
#ifdef HAVE_LIBBPF_SUPPORT
-struct bpf_object *bpf__prepare_load(const char *filename);
+struct bpf_object *bpf__prepare_load(const char *filename, bool source);
void bpf__clear(void);
@@ -34,7 +34,8 @@ int bpf__foreach_tev(struct bpf_object *obj,
bpf_prog_iter_callback_t func, void *arg);
#else
static inline struct bpf_object *
-bpf__prepare_load(const char *filename __maybe_unused)
+bpf__prepare_load(const char *filename __maybe_unused,
+ bool source __maybe_unused)
{
pr_debug("ERROR: eBPF object loading is disabled during compiling.\n");
return ERR_PTR(-ENOTSUP);
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index cee8c619ec7e..bee60583839a 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -626,11 +626,12 @@ errout:
int parse_events_load_bpf(struct parse_events_evlist *data,
struct list_head *list,
- char *bpf_file_name)
+ char *bpf_file_name,
+ bool source)
{
struct bpf_object *obj;
- obj = bpf__prepare_load(bpf_file_name);
+ obj = bpf__prepare_load(bpf_file_name, source);
if (IS_ERR(obj) || !obj) {
char errbuf[BUFSIZ];
int err;
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
index 765018a17448..f1a6db107241 100644
--- a/tools/perf/util/parse-events.h
+++ b/tools/perf/util/parse-events.h
@@ -125,7 +125,8 @@ int parse_events_add_tracepoint(struct list_head *list, int *idx,
struct list_head *head_config);
int parse_events_load_bpf(struct parse_events_evlist *data,
struct list_head *list,
- char *bpf_file_name);
+ char *bpf_file_name,
+ bool source);
/* Provide this function for perf test */
struct bpf_object;
int parse_events_load_bpf_obj(struct parse_events_evlist *data,
diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
index cf330ebf812c..58c5831ffd5c 100644
--- a/tools/perf/util/parse-events.l
+++ b/tools/perf/util/parse-events.l
@@ -116,6 +116,7 @@ group [^,{}/]*[{][^}]*[}][^,{}/]*
event_pmu [^,{}/]+[/][^/]*[/][^,{}/]*
event [^,{}/]+
bpf_object .*\.(o|bpf)
+bpf_source .*\.c
num_dec [0-9]+
num_hex 0x[a-fA-F0-9]+
@@ -161,6 +162,7 @@ modifier_bp [rwx]{1,3}
{event_pmu} |
{bpf_object} |
+{bpf_source} |
{event} {
BEGIN(INITIAL);
REWIND(1);
@@ -269,6 +271,7 @@ r{num_raw_hex} { return raw(yyscanner); }
{modifier_event} { return str(yyscanner, PE_MODIFIER_EVENT); }
{bpf_object} { return str(yyscanner, PE_BPF_OBJECT); }
+{bpf_source} { return str(yyscanner, PE_BPF_SOURCE); }
{name} { return pmu_str_check(yyscanner); }
"/" { BEGIN(config); return '/'; }
- { return '-'; }
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
index 497f19b20f0b..ad379968d4c1 100644
--- a/tools/perf/util/parse-events.y
+++ b/tools/perf/util/parse-events.y
@@ -42,7 +42,7 @@ static inc_group_count(struct list_head *list,
%token PE_VALUE PE_VALUE_SYM_HW PE_VALUE_SYM_SW PE_RAW PE_TERM
%token PE_EVENT_NAME
%token PE_NAME
-%token PE_BPF_OBJECT
+%token PE_BPF_OBJECT PE_BPF_SOURCE
%token PE_MODIFIER_EVENT PE_MODIFIER_BP
%token PE_NAME_CACHE_TYPE PE_NAME_CACHE_OP_RESULT
%token PE_PREFIX_MEM PE_PREFIX_RAW PE_PREFIX_GROUP
@@ -55,6 +55,7 @@ static inc_group_count(struct list_head *list,
%type <num> PE_TERM
%type <str> PE_NAME
%type <str> PE_BPF_OBJECT
+%type <str> PE_BPF_SOURCE
%type <str> PE_NAME_CACHE_TYPE
%type <str> PE_NAME_CACHE_OP_RESULT
%type <str> PE_MODIFIER_EVENT
@@ -461,7 +462,17 @@ PE_BPF_OBJECT
struct list_head *list;
ALLOC_LIST(list);
- ABORT_ON(parse_events_load_bpf(data, list, $1));
+ ABORT_ON(parse_events_load_bpf(data, list, $1, false));
+ $$ = list;
+}
+|
+PE_BPF_SOURCE
+{
+ struct parse_events_evlist *data = _data;
+ struct list_head *list;
+
+ ALLOC_LIST(list);
+ ABORT_ON(parse_events_load_bpf(data, list, $1, true));
$$ = list;
}
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* [PATCH 7/8] tools build: Fix libiberty feature detection
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2015-10-29 23:05 ` [PATCH 6/8] perf tools: Compile scriptlets to BPF objects when passing '.c' to --event Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 8/8] perf unwind: Pass symbol source to libunwind Arnaldo Carvalho de Melo
2015-10-30 9:10 ` [GIT PULL 0/8] perf/core improvements and fixes Ingo Molnar
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Rabin Vincent, Namhyung Kim, Peter Zijlstra,
Rabin Vincent, Arnaldo Carvalho de Melo
From: Rabin Vincent <rabin.vincent@axis.com>
Any CFLAGS or LDFLAGS set by the user need to be passed to the feature
build command. This many include for example -I or -L to point to
libraries and include files in custom paths.
In most of the test-*.bin rules in build/feature/Makefile, we use the BUILD
macro which always sends in CFLAGS and LDFLAGS. The libiberty build line
however doesn't use the BUILD macro and thus needs to send in CFLAGS and
LDFLAGS explicitly. Without this, when using custom CFLAGS/LDFLAGS, libiberty
fails to be detected and the perf link fails with something like:
LINK perf
libbfd.a(bfd.o): In function `bfd_errmsg':
bfd.c:(.text+0x168): undefined reference to `xstrerror'
bbfd.a(opncls.o): In function `_bfd_new_bfd':
opncls.c:(.text+0xe8): undefined reference to `objalloc_create'
...
Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Rabin Vincent <rabinv@axis.com>
Link: http://lkml.kernel.org/r/1446104978-26429-2-git-send-email-rabin.vincent@axis.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/build/feature/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index e43a2971bf56..cea04ce9f35c 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -132,10 +132,10 @@ test-libbfd.bin:
$(BUILD) -DPACKAGE='"perf"' -lbfd -lz -liberty -ldl
test-liberty.bin:
- $(CC) -Wall -Werror -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' -lbfd -ldl -liberty
+ $(CC) $(CFLAGS) -Wall -Werror -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty
test-liberty-z.bin:
- $(CC) -Wall -Werror -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' -lbfd -ldl -liberty -lz
+ $(CC) $(CFLAGS) -Wall -Werror -o $(OUTPUT)$@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty -lz
test-cplus-demangle.bin:
$(BUILD) -liberty
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* [PATCH 8/8] perf unwind: Pass symbol source to libunwind
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2015-10-29 23:05 ` [PATCH 7/8] tools build: Fix libiberty feature detection Arnaldo Carvalho de Melo
@ 2015-10-29 23:05 ` Arnaldo Carvalho de Melo
2015-10-30 9:10 ` [GIT PULL 0/8] perf/core improvements and fixes Ingo Molnar
8 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-29 23:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Rabin Vincent, Jiri Olsa, Namhyung Kim,
Peter Zijlstra, Rabin Vincent, Arnaldo Carvalho de Melo
From: Rabin Vincent <rabin.vincent@axis.com>
Even if --symfs is used to point to the debug binaries, we send in the
non-debug filenames to libunwind, which leads to libunwind not finding
the debug frame. Fix this by preferring the file in --symfs, if it is
available.
Signed-off-by: Rabin Vincent <rabin.vincent@axis.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Rabin Vincent <rabinv@axis.com>
Link: http://lkml.kernel.org/r/1446104978-26429-1-git-send-email-rabin.vincent@axis.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/unwind-libunwind.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/unwind-libunwind.c b/tools/perf/util/unwind-libunwind.c
index f729f9e99f99..c83832b555e5 100644
--- a/tools/perf/util/unwind-libunwind.c
+++ b/tools/perf/util/unwind-libunwind.c
@@ -360,12 +360,15 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
int fd = dso__data_get_fd(map->dso, ui->machine);
int is_exec = elf_is_exec(fd, map->dso->name);
unw_word_t base = is_exec ? 0 : map->start;
+ const char *symfile;
if (fd >= 0)
dso__data_put_fd(map->dso);
+ symfile = map->dso->symsrc_filename ?: map->dso->name;
+
memset(&di, 0, sizeof(di));
- if (dwarf_find_debug_frame(0, &di, ip, base, map->dso->name,
+ if (dwarf_find_debug_frame(0, &di, ip, base, symfile,
map->start, map->end))
return dwarf_search_unwind_table(as, ip, &di, pi,
need_unwind_info, arg);
--
2.1.0
^ permalink raw reply related [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2015-10-29 23:05 ` [PATCH 8/8] perf unwind: Pass symbol source to libunwind Arnaldo Carvalho de Melo
@ 2015-10-30 9:10 ` Ingo Molnar
8 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2015-10-30 9:10 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Andi Kleen,
Brendan Gregg, Daniel Borkmann, David Ahern, He Kuang, Jiri Olsa,
Kaixu Xia, Kan Liang, Masami Hiramatsu, Namhyung Kim,
Peter Zijlstra, pi3orama, Rabin Vincent, Stephane Eranian,
Wang Nan, Yuanfang Chen, Zefan Li, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> This one gets us to pass .c files that gets built and
> loaded, next step will be to be able to access function arguments,
> for which there are patches available, but I'm still reviewing them.
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 66a565c203bc31b76969711fbd92da11bee2f129:
>
> Merge tag 'perf-ebpf-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-29 13:17:56 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 7ed4915ad60788d6b846e2cd034f49ee15698143:
>
> perf unwind: Pass symbol source to libunwind (2015-10-29 17:48:38 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> New features:
>
> - Allow passing C language eBPF scriptlets via --event in all tools,
> so that it gets built using clang and then pass it to the kernel via
> sys_bpf() (Wang Nan)
>
> - Wire up the loaded ebpf object file with associated kprobes, so that
> it can determine if the kprobes will be filtered or not (Wang Nan)
>
> User visible:
>
> - Add cmd string table to decode sys_bpf first arg in 'trace' (Arnaldo Carvalho de Melo)
>
> - Enable printing of branch stack in 'perf script' (Stephane Eranian)
>
> - Pass the right file with debug info to libunwind (Rabin Vincent)
>
> Build Fixes:
>
> - Make sure fixdep is built before libbpf, fixing a race (Jiri Olsa)
>
> - Fix libiberty feature detection (Rabin Vincent)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> perf trace: Add cmd string table to decode sys_bpf first arg
>
> Jiri Olsa (1):
> perf tools: Make sure fixdep is built before libbpf
>
> Rabin Vincent (2):
> tools build: Fix libiberty feature detection
> perf unwind: Pass symbol source to libunwind
>
> Stephane Eranian (1):
> perf script: Enable printing of branch stack
>
> Wang Nan (3):
> perf bpf: Attach eBPF filter to perf event
> perf record: Add clang options for compiling BPF scripts
> perf tools: Compile scriptlets to BPF objects when passing '.c' to --event
>
> tools/build/feature/Makefile | 4 +-
> tools/perf/Documentation/perf-record.txt | 6 +++
> tools/perf/Documentation/perf-script.txt | 14 +++++-
> tools/perf/Makefile.perf | 2 +-
> tools/perf/builtin-record.c | 7 +++
> tools/perf/builtin-script.c | 82 +++++++++++++++++++++++++++++++-
> tools/perf/builtin-trace.c | 7 +++
> tools/perf/tests/bpf-script-example.c | 44 +++++++++++++++++
> tools/perf/util/bpf-loader.c | 17 ++++++-
> tools/perf/util/bpf-loader.h | 5 +-
> tools/perf/util/evsel.c | 17 +++++++
> tools/perf/util/evsel.h | 1 +
> tools/perf/util/parse-events.c | 11 ++++-
> tools/perf/util/parse-events.h | 3 +-
> tools/perf/util/parse-events.l | 3 ++
> tools/perf/util/parse-events.y | 15 +++++-
> tools/perf/util/unwind-libunwind.c | 5 +-
> 17 files changed, 227 insertions(+), 16 deletions(-)
> create mode 100644 tools/perf/tests/bpf-script-example.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2018-03-28 18:49 Arnaldo Carvalho de Melo
2018-03-29 7:23 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-03-28 18:49 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Alexander Shishkin, David Ahern, Heiko Carstens,
Hendrik Brueckner, Jiri Olsa, Kan Liang, Martin Schwidefsky,
Namhyung Kim, Peter Zijlstra, Thomas Richter, Wang Nan,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 631fe154edb0a37308d0116a0f9b7bba9dca6218:
perf/x86: Update rdpmc_always_available static key to the modern API (2018-03-27 07:53:00 +0200)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.17-20180328
for you to fetch changes up to 109d59b900e78834c66657dd4748fcedb9a1fe8d:
perf vendor events s390: Add JSON files for IBM z14 (2018-03-27 13:13:39 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Be consistent when checking if a perf_mmap instance had
its ring buffer unmmaped, fixing segfaults noticed in
'perf trace' (Kan Liang, Arnaldo Carvalho de Melo)
- Avoid adding the same option multiple times to the 'diff'
command in check-headers.sh (Jiri Olsa)
- Add vendor event files (JSON format) to various IBM
s390 models (z10EC, z10BC, z196, zEC12, zBC12, z13
and z14) (Thomas Richter)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf mmap: Be consistent when checking for an unmaped ring buffer
Jiri Olsa (1):
perf build: Fix check-headers.sh opts assignment
Kan Liang (1):
perf mmap: Fix accessing unmapped mmap in perf_mmap__read_done()
Thomas Richter (5):
perf vendor events s390: Add JSON files for IBM z10EC z10BC
perf vendor events s390: Add JSON files for IBM z196
perf vendor events s390: Add JSON files for IBM zEC12 zBC12
perf vendor events s390: Add JSON files for IBM z13
perf vendor events s390: Add JSON files for IBM z14
tools/perf/check-headers.sh | 1 +
tools/perf/pmu-events/arch/s390/cf_z10/basic.json | 74 +++++
tools/perf/pmu-events/arch/s390/cf_z10/crypto.json | 98 ++++++
.../perf/pmu-events/arch/s390/cf_z10/extended.json | 110 +++++++
tools/perf/pmu-events/arch/s390/cf_z13/basic.json | 74 +++++
tools/perf/pmu-events/arch/s390/cf_z13/crypto.json | 98 ++++++
.../perf/pmu-events/arch/s390/cf_z13/extended.json | 338 +++++++++++++++++++++
tools/perf/pmu-events/arch/s390/cf_z14/basic.json | 50 +++
tools/perf/pmu-events/arch/s390/cf_z14/crypto.json | 98 ++++++
.../perf/pmu-events/arch/s390/cf_z14/extended.json | 320 +++++++++++++++++++
tools/perf/pmu-events/arch/s390/cf_z196/basic.json | 74 +++++
.../perf/pmu-events/arch/s390/cf_z196/crypto.json | 98 ++++++
.../pmu-events/arch/s390/cf_z196/extended.json | 146 +++++++++
.../perf/pmu-events/arch/s390/cf_zec12/basic.json | 74 +++++
.../perf/pmu-events/arch/s390/cf_zec12/crypto.json | 98 ++++++
.../pmu-events/arch/s390/cf_zec12/extended.json | 212 +++++++++++++
tools/perf/pmu-events/arch/s390/mapfile.csv | 6 +
tools/perf/util/mmap.c | 19 +-
18 files changed, 1987 insertions(+), 1 deletion(-)
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/mapfile.csv
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support. Where clang is available, it is also used to build
perf with/without libelf.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# docker images | grep none
# time dm
1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0
2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822
3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0
4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0
5 alpine:edge : Ok gcc (Alpine 6.4.0) 6.4.0
6 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
7 amazonlinux:2 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
8 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
9 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
10 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
11 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
12 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
13 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2
14 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u1) 4.9.2
15 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
16 debian:experimental : Ok gcc (Debian 7.3.0-12) 7.3.0
17 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 7.3.0-12) 7.3.0
18 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 7.3.0-12) 7.3.0
19 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 7.3.0-11) 7.3.0
20 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 7.3.0-12) 7.3.0
21 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
22 fedora:21 : Ok gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
23 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
24 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
25 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
26 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
27 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
28 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
29 fedora:27 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
30 fedora:rawhide : Ok gcc (GCC) 8.0.1 20180222 (Red Hat 8.0.1-0.16)
31 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0
32 mageia:5 : Ok gcc (GCC) 4.9.2
33 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0
34 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5
35 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5
36 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5
37 opensuse:tumbleweed : Ok gcc (SUSE Linux) 7.3.0
38 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
39 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16.0.3)
40 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
41 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
42 ubuntu:14.04.4-x-linaro-arm64 : Ok aarch64-linux-gnu-gcc (Linaro GCC 5.4-2017.05) 5.4.1 20170404
43 ubuntu:15.04 : Ok gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
44 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
45 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
46 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
47 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
48 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
49 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
50 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
51 ubuntu:16.10 : Ok gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
52 ubuntu:17.04 : Ok gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
53 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
54 ubuntu:18.04 : Ok gcc (Ubuntu 7.2.0-16ubuntu1) 7.2.0
#
# uname -r
4.16.0-rc7
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Breakpoint accounting : Skip
22: Number of exit events of a simple workload : Ok
23: Software clock events period values : Ok
24: Object code reading : Ok
25: Sample parsing : Ok
26: Use a dummy software event to keep tracking : Ok
27: Parse with no sample_id_all bit set : Ok
28: Filter hist entries : Ok
29: Lookup mmap thread : Ok
30: Share thread mg : Ok
31: Sort output of hist entries : Ok
32: Cumulate child hist entries : Ok
33: Track with sched_switch : Ok
34: Filter fds with revents mask in a fdarray : Ok
35: Add fd to a fdarray, making it autogrow : Ok
36: kmod_path__parse : Ok
37: Thread map : Ok
38: LLVM search and compile :
38.1: Basic BPF llvm compile : Ok
38.2: kbuild searching : Ok
38.3: Compile source for BPF prologue generation : Ok
38.4: Compile source for BPF relocation : Ok
39: Session topology : Ok
40: BPF filter :
40.1: Basic BPF filtering : Ok
40.2: BPF pinning : Ok
40.3: BPF prologue generation : Ok
40.4: BPF relocation checker : Ok
41: Synthesize thread map : Ok
42: Remove thread map : Ok
43: Synthesize cpu map : Ok
44: Synthesize stat config : Ok
45: Synthesize stat : Ok
46: Synthesize stat round : Ok
47: Synthesize attr update : Ok
48: Event times : Ok
49: Read backward ring buffer : Ok
50: Print cpu map : Ok
51: Probe SDT events : Ok
52: is_printable_array : Ok
53: Print bitmap : Ok
54: perf hooks : Ok
55: builtin clang support : Skip (not compiled in)
56: unit_number__scnprintf : Ok
57: mem2node : Ok
58: x86 rdpmc : Ok
59: Convert perf time to TSC : Ok
60: DWARF unwind : Ok
61: x86 instruction decoder - new instructions : Ok
62: Use vfs_getname probe to get syscall args filenames : Ok
63: probe libc's inet_pton & backtrace it with ping : Ok
64: Check open filename arg using perf trace + vfs_getname: Ok
65: probe libc's inet_pton & backtrace it with ping : Ok
66: Add vfs_getname probe to get syscall args filenames : Ok
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/perf/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_install_prefix_O: make install prefix=/tmp/krava
make_perf_o_O: make perf.o
make_no_libpython_O: make NO_LIBPYTHON=1
make_tags_O: make tags
make_install_O: make install
make_doc_O: make doc
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_libelf_O: make NO_LIBELF=1
make_install_bin_O: make install-bin
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_gtk2_O: make NO_GTK2=1
make_no_slang_O: make NO_SLANG=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_help_O: make help
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libbpf_O: make NO_LIBBPF=1
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_clean_all_O: make clean all
make_no_newt_O: make NO_NEWT=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_debug_O: make DEBUG=1
make_pure_O: make
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_static_O: make LDFLAGS=-static
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_util_map_o_O: make util/map.o
OK
make: Leaving directory '/home/acme/git/perf/tools/perf'
$
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2018-03-28 18:49 Arnaldo Carvalho de Melo
@ 2018-03-29 7:23 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2018-03-29 7:23 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Adrian Hunter, Alexander Shishkin,
David Ahern, Heiko Carstens, Hendrik Brueckner, Jiri Olsa,
Kan Liang, Martin Schwidefsky, Namhyung Kim, Peter Zijlstra,
Thomas Richter, Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 631fe154edb0a37308d0116a0f9b7bba9dca6218:
>
> perf/x86: Update rdpmc_always_available static key to the modern API (2018-03-27 07:53:00 +0200)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.17-20180328
>
> for you to fetch changes up to 109d59b900e78834c66657dd4748fcedb9a1fe8d:
>
> perf vendor events s390: Add JSON files for IBM z14 (2018-03-27 13:13:39 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> - Be consistent when checking if a perf_mmap instance had
> its ring buffer unmmaped, fixing segfaults noticed in
> 'perf trace' (Kan Liang, Arnaldo Carvalho de Melo)
>
> - Avoid adding the same option multiple times to the 'diff'
> command in check-headers.sh (Jiri Olsa)
>
> - Add vendor event files (JSON format) to various IBM
> s390 models (z10EC, z10BC, z196, zEC12, zBC12, z13
> and z14) (Thomas Richter)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> perf mmap: Be consistent when checking for an unmaped ring buffer
>
> Jiri Olsa (1):
> perf build: Fix check-headers.sh opts assignment
>
> Kan Liang (1):
> perf mmap: Fix accessing unmapped mmap in perf_mmap__read_done()
>
> Thomas Richter (5):
> perf vendor events s390: Add JSON files for IBM z10EC z10BC
> perf vendor events s390: Add JSON files for IBM z196
> perf vendor events s390: Add JSON files for IBM zEC12 zBC12
> perf vendor events s390: Add JSON files for IBM z13
> perf vendor events s390: Add JSON files for IBM z14
>
> tools/perf/check-headers.sh | 1 +
> tools/perf/pmu-events/arch/s390/cf_z10/basic.json | 74 +++++
> tools/perf/pmu-events/arch/s390/cf_z10/crypto.json | 98 ++++++
> .../perf/pmu-events/arch/s390/cf_z10/extended.json | 110 +++++++
> tools/perf/pmu-events/arch/s390/cf_z13/basic.json | 74 +++++
> tools/perf/pmu-events/arch/s390/cf_z13/crypto.json | 98 ++++++
> .../perf/pmu-events/arch/s390/cf_z13/extended.json | 338 +++++++++++++++++++++
> tools/perf/pmu-events/arch/s390/cf_z14/basic.json | 50 +++
> tools/perf/pmu-events/arch/s390/cf_z14/crypto.json | 98 ++++++
> .../perf/pmu-events/arch/s390/cf_z14/extended.json | 320 +++++++++++++++++++
> tools/perf/pmu-events/arch/s390/cf_z196/basic.json | 74 +++++
> .../perf/pmu-events/arch/s390/cf_z196/crypto.json | 98 ++++++
> .../pmu-events/arch/s390/cf_z196/extended.json | 146 +++++++++
> .../perf/pmu-events/arch/s390/cf_zec12/basic.json | 74 +++++
> .../perf/pmu-events/arch/s390/cf_zec12/crypto.json | 98 ++++++
> .../pmu-events/arch/s390/cf_zec12/extended.json | 212 +++++++++++++
> tools/perf/pmu-events/arch/s390/mapfile.csv | 6 +
> tools/perf/util/mmap.c | 19 +-
> 18 files changed, 1987 insertions(+), 1 deletion(-)
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/basic.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/crypto.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/extended.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/basic.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/crypto.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/extended.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/basic.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/crypto.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/extended.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/basic.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/crypto.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/extended.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/basic.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/crypto.json
> create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/extended.json
> create mode 100644 tools/perf/pmu-events/arch/s390/mapfile.csv
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2017-10-03 12:55 Arnaldo Carvalho de Melo
2017-10-03 16:38 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-10-03 12:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Alexei Starovoitov, Andi Kleen, David Ahern,
Heiko Carstens, He Kuang, Hendrik Brueckner, Jiri Olsa, Kan Liang,
Lukasz Odzioba, Martin Schwidefsky, Namhyung Kim, Peter Zijlstra,
Thomas-Mich Richter, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
I pulled tip/perf/urgent to pick up fixes, please consider
pulling, I've been away for a while, so I'll be harvesting outstanding
patches in the next few days, as well as trying and reviewing more
complex patchkits,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit c976a7d6db215481261b63a89a408cb265a9812b:
Merge remote-tracking branch 'tip/perf/urgent' into perf/core, to pick up fixes (2017-10-02 13:58:12 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.15-20171003
for you to fetch changes up to f6a9820d572bd8384d982357cbad214b3a6c04bb:
perf tests attr: Fix group stat tests (2017-10-03 09:41:45 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Multithread the synthesizing of PERF_RECORD_ events for pre-existing
threads in 'perf top', speeding up that phase, greatly improving the
user experience in systems such as Intel's Knights Mill (Kan Liang)
- 'perf test' fixes for the perf_event_attr test case (Jiri Olsa, Thomas Richter)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Jiri Olsa (2):
perf tests attr: Fix task term values
perf tests attr: Fix group stat tests
Kan Liang (4):
perf tools: Lock to protect namespaces and comm list
perf tools: Lock to protect comm_str rb tree
perf top: Implement multithreading for perf_event__synthesize_threads
perf top: Add option to set the number of thread for event synthesize
Thomas Richter (2):
perf test attr: Fix python error on empty result
perf test attr: Fix ignored test case result
tools/perf/Documentation/perf-top.txt | 3 +
tools/perf/builtin-kvm.c | 3 +-
tools/perf/builtin-record.c | 2 +-
tools/perf/builtin-top.c | 13 +-
tools/perf/builtin-trace.c | 2 +-
tools/perf/tests/attr.c | 2 +-
tools/perf/tests/attr.py | 6 +-
tools/perf/tests/attr/base-record | 2 +-
tools/perf/tests/attr/test-record-group | 1 +
tools/perf/tests/attr/test-record-group-sampling | 2 +-
tools/perf/tests/attr/test-record-group1 | 1 +
tools/perf/tests/attr/test-stat-group | 2 +
tools/perf/tests/attr/test-stat-group1 | 2 +
tools/perf/tests/mmap-thread-lookup.c | 2 +-
tools/perf/util/comm.c | 18 ++-
tools/perf/util/event.c | 163 ++++++++++++++++++-----
tools/perf/util/event.h | 3 +-
tools/perf/util/machine.c | 8 +-
tools/perf/util/machine.h | 9 +-
tools/perf/util/thread.c | 53 +++++++-
tools/perf/util/thread.h | 3 +
tools/perf/util/top.h | 1 +
22 files changed, 249 insertions(+), 52 deletions(-)
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support. Where clang is available, it is also used to build
perf with/without libelf.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# dm
1 alpine:3.4: Ok
2 alpine:3.5: Ok
3 alpine:3.6: Ok
4 alpine:edge: Ok
5 android-ndk:r12b-arm: Ok
6 android-ndk:r15c-arm: Ok
7 centos:5: Ok
8 centos:6: Ok
9 centos:7: Ok
10 debian:7: Ok
11 debian:8: Ok
12 debian:9: Ok
13 debian:experimental: Ok
14 debian:experimental-x-arm64: Ok
15 debian:experimental-x-mips: Ok
16 debian:experimental-x-mips64: Ok
17 debian:experimental-x-mipsel: Ok
18 fedora:20: Ok
19 fedora:21: Ok
20 fedora:22: Ok
21 fedora:23: Ok
22 fedora:24: Ok
23 fedora:24-x-ARC-uClibc: FAIL
builtin-sched.c: In function 'timehist_sched_switch_event':
builtin-sched.c:2580:1: internal compiler error: in change_address_1, at emit-rtl.c:2150
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues> for instructions.
24 fedora:25: Ok
25 fedora:26: Ok
26 fedora:rawhide: Ok
27 mageia:5: Ok
28 opensuse:42.1: Ok
29 opensuse:42.2: Ok
30 opensuse:42.3: Ok
31 opensuse:tumbleweed: Ok
32 oraclelinux:6: Ok
33 oraclelinux:7: Ok
34 ubuntu:12.04.5: Ok
35 ubuntu:14.04.4: Ok
36 ubuntu:14.04.4-x-linaro-arm64: Ok
37 ubuntu:15.10: Ok
38 ubuntu:16.04: Ok
39 ubuntu:16.04-x-arm: Ok
40 ubuntu:16.04-x-arm64: Ok
41 ubuntu:16.04-x-powerpc: Ok
42 ubuntu:16.04-x-powerpc64: Ok
43 ubuntu:16.04-x-powerpc64el: Ok
44 ubuntu:16.04-x-s390: Ok
# uname -a
Linux jouet 4.13.0+ #3 SMP Mon Sep 25 11:51:22 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Number of exit events of a simple workload : Ok
22: Software clock events period values : Ok
23: Object code reading : Ok
24: Sample parsing : Ok
25: Use a dummy software event to keep tracking : Ok
26: Parse with no sample_id_all bit set : Ok
27: Filter hist entries : Ok
28: Lookup mmap thread : Ok
29: Share thread mg : Ok
30: Sort output of hist entries : Ok
31: Cumulate child hist entries : Ok
32: Track with sched_switch : Ok
33: Filter fds with revents mask in a fdarray : Ok
34: Add fd to a fdarray, making it autogrow : Ok
35: kmod_path__parse : Ok
36: Thread map : Ok
37: LLVM search and compile :
37.1: Basic BPF llvm compile : Ok
37.2: kbuild searching : Ok
37.3: Compile source for BPF prologue generation : Ok
37.4: Compile source for BPF relocation : Ok
38: Session topology : Ok
39: BPF filter :
39.1: Basic BPF filtering : Ok
39.2: BPF pinning : Ok
39.3: BPF prologue generation : Ok
39.4: BPF relocation checker : Ok
40: Synthesize thread map : Ok
41: Remove thread map : Ok
42: Synthesize cpu map : Ok
43: Synthesize stat config : Ok
44: Synthesize stat : Ok
45: Synthesize stat round : Ok
46: Synthesize attr update : Ok
47: Event times : Ok
48: Read backward ring buffer : Ok
49: Print cpu map : Ok
50: Probe SDT events : Ok
51: is_printable_array : Ok
52: Print bitmap : Ok
53: perf hooks : Ok
54: builtin clang support : Skip (not compiled in)
55: unit_number__scnprintf : Ok
56: x86 rdpmc : Ok
57: Convert perf time to TSC : Ok
58: DWARF unwind : Ok
59: x86 instruction decoder - new instructions : Ok
60: Use vfs_getname probe to get syscall args filenames : Ok
61: probe libc's inet_pton & backtrace it with ping : Ok
62: Check open filename arg using perf trace + vfs_getname: Ok
63: Add vfs_getname probe to get syscall args filenames : Ok
#
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2017-10-03 12:55 Arnaldo Carvalho de Melo
@ 2017-10-03 16:38 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2017-10-03 16:38 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Adrian Hunter, Alexei Starovoitov,
Andi Kleen, David Ahern, Heiko Carstens, He Kuang,
Hendrik Brueckner, Jiri Olsa, Kan Liang, Lukasz Odzioba,
Martin Schwidefsky, Namhyung Kim, Peter Zijlstra,
Thomas-Mich Richter, Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> I pulled tip/perf/urgent to pick up fixes, please consider
> pulling, I've been away for a while, so I'll be harvesting outstanding
> patches in the next few days, as well as trying and reviewing more
> complex patchkits,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit c976a7d6db215481261b63a89a408cb265a9812b:
>
> Merge remote-tracking branch 'tip/perf/urgent' into perf/core, to pick up fixes (2017-10-02 13:58:12 -0300)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.15-20171003
>
> for you to fetch changes up to f6a9820d572bd8384d982357cbad214b3a6c04bb:
>
> perf tests attr: Fix group stat tests (2017-10-03 09:41:45 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> - Multithread the synthesizing of PERF_RECORD_ events for pre-existing
> threads in 'perf top', speeding up that phase, greatly improving the
> user experience in systems such as Intel's Knights Mill (Kan Liang)
>
> - 'perf test' fixes for the perf_event_attr test case (Jiri Olsa, Thomas Richter)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Jiri Olsa (2):
> perf tests attr: Fix task term values
> perf tests attr: Fix group stat tests
>
> Kan Liang (4):
> perf tools: Lock to protect namespaces and comm list
> perf tools: Lock to protect comm_str rb tree
> perf top: Implement multithreading for perf_event__synthesize_threads
> perf top: Add option to set the number of thread for event synthesize
>
> Thomas Richter (2):
> perf test attr: Fix python error on empty result
> perf test attr: Fix ignored test case result
>
> tools/perf/Documentation/perf-top.txt | 3 +
> tools/perf/builtin-kvm.c | 3 +-
> tools/perf/builtin-record.c | 2 +-
> tools/perf/builtin-top.c | 13 +-
> tools/perf/builtin-trace.c | 2 +-
> tools/perf/tests/attr.c | 2 +-
> tools/perf/tests/attr.py | 6 +-
> tools/perf/tests/attr/base-record | 2 +-
> tools/perf/tests/attr/test-record-group | 1 +
> tools/perf/tests/attr/test-record-group-sampling | 2 +-
> tools/perf/tests/attr/test-record-group1 | 1 +
> tools/perf/tests/attr/test-stat-group | 2 +
> tools/perf/tests/attr/test-stat-group1 | 2 +
> tools/perf/tests/mmap-thread-lookup.c | 2 +-
> tools/perf/util/comm.c | 18 ++-
> tools/perf/util/event.c | 163 ++++++++++++++++++-----
> tools/perf/util/event.h | 3 +-
> tools/perf/util/machine.c | 8 +-
> tools/perf/util/machine.h | 9 +-
> tools/perf/util/thread.c | 53 +++++++-
> tools/perf/util/thread.h | 3 +
> tools/perf/util/top.h | 1 +
> 22 files changed, 249 insertions(+), 52 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2016-01-15 21:40 Arnaldo Carvalho de Melo
2016-01-19 7:32 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-01-15 21:40 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Ben Hutchings, Jiri Olsa,
Namhyung Kim, Naveen N . Rao, Peter Zijlstra, pi3orama,
Ravi Bangoria, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit c36608843adf4674c462e49f63b64b2987d0ba0b:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2016-01-13 10:36:03 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 96b9e70b8e6cd65f71ee71889143976f3afb038a:
perf build: Introduce FEATURES_DUMP make variable (2016-01-15 16:32:00 -0300)
----------------------------------------------------------------
perf tools improvements and fixes:
User visible bug fixes:
- Fix reading of build-id from vDSO (Ben Hutchings)
- Fix processing samples for guests, noticed with 'perf kvm',
but noticeable as well via other tools, such as 'perf top'
(Ravi Bangoria)
Build infrastructure:
- Add feature-dump target and FEATURES_DUMP make variable, to
allow reusing the feature detection results among multiple
tools/ living codebases, such as perf and lib/bpf (Jiri Olsa)
- 'make -C tools/perf build-test' improvements, making it more
paralelizable and allowing building it outside of the source
tree, using O= (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Ben Hutchings (1):
perf symbols: Fix reading of build-id from vDSO
Jiri Olsa (2):
perf build: Add feature-dump target
perf build: Introduce FEATURES_DUMP make variable
Ravi Bangoria (1):
perf kvm record/report: 'unprocessable sample' error while recording/reporting guest data
Wang Nan (4):
perf build: Set parallel making options build-test
perf build: Pass O option to Makefile.perf in build-test
perf build: Test correct path of perf in build-test
perf build: Pass O option to kernel makefile in build-test
tools/perf/Makefile.perf | 25 ++++++++++++++++++++-
tools/perf/config/Makefile | 4 ++++
tools/perf/tests/make | 55 +++++++++++++++++++++++++++++++++-------------
tools/perf/util/session.c | 2 +-
tools/perf/util/symbol.c | 2 +-
5 files changed, 70 insertions(+), 18 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2016-01-15 21:40 Arnaldo Carvalho de Melo
@ 2016-01-19 7:32 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2016-01-19 7:32 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Ben Hutchings, Jiri Olsa, Namhyung Kim,
Naveen N . Rao, Peter Zijlstra, pi3orama, Ravi Bangoria, Wang Nan,
Zefan Li, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit c36608843adf4674c462e49f63b64b2987d0ba0b:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2016-01-13 10:36:03 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 96b9e70b8e6cd65f71ee71889143976f3afb038a:
>
> perf build: Introduce FEATURES_DUMP make variable (2016-01-15 16:32:00 -0300)
>
> ----------------------------------------------------------------
> perf tools improvements and fixes:
>
> User visible bug fixes:
>
> - Fix reading of build-id from vDSO (Ben Hutchings)
>
> - Fix processing samples for guests, noticed with 'perf kvm',
> but noticeable as well via other tools, such as 'perf top'
> (Ravi Bangoria)
>
> Build infrastructure:
>
> - Add feature-dump target and FEATURES_DUMP make variable, to
> allow reusing the feature detection results among multiple
> tools/ living codebases, such as perf and lib/bpf (Jiri Olsa)
>
> - 'make -C tools/perf build-test' improvements, making it more
> paralelizable and allowing building it outside of the source
> tree, using O= (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Ben Hutchings (1):
> perf symbols: Fix reading of build-id from vDSO
>
> Jiri Olsa (2):
> perf build: Add feature-dump target
> perf build: Introduce FEATURES_DUMP make variable
>
> Ravi Bangoria (1):
> perf kvm record/report: 'unprocessable sample' error while recording/reporting guest data
>
> Wang Nan (4):
> perf build: Set parallel making options build-test
> perf build: Pass O option to Makefile.perf in build-test
> perf build: Test correct path of perf in build-test
> perf build: Pass O option to kernel makefile in build-test
>
> tools/perf/Makefile.perf | 25 ++++++++++++++++++++-
> tools/perf/config/Makefile | 4 ++++
> tools/perf/tests/make | 55 +++++++++++++++++++++++++++++++++-------------
> tools/perf/util/session.c | 2 +-
> tools/perf/util/symbol.c | 2 +-
> 5 files changed, 70 insertions(+), 18 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2015-10-22 22:14 Arnaldo Carvalho de Melo
2015-10-23 8:28 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-22 22:14 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, Brendan Gregg, Chandler Carruth, Dave Chinner,
David Ahern, Frederic Weisbecker, Jiri Olsa, Martin Liška,
Namhyung Kim, Peter Zijlstra, Scott Wood, Stephane Eranian,
Steven Rostedt, Taeung Song, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 4ba792e303e278052bb0ee60cce15d6d7dc15c7c:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-22 09:33:46 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to f06cff7c59b6b252d667435d7baad48687b41002:
perf annotate: Don't die() when finding an invalid config option (2015-10-22 18:10:52 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- The default for callchains is back to 'callee' when --children is not used,
(Namhyung Kim)
- Move the 'use_offset' option to the right place where the annotate code
expects it to be to be able to properly handle it (Namhyung Kim)
- Don't die when an unknown 'annotate' option is found in the perf config
file (usually ~/.perfconfig), just warn the user (Arnaldo Carvalho de Melo)
Infrastructure:
- Support %ps/%pS in libtraceevent (Scott Wood)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf ui tui: Register the error callbacks before initializing the widgets
perf annotate: Don't die() when finding an invalid config option
Namhyung Kim (5):
perf tools: Move callchain help messages to callchain.h
perf top: Support call-graph display options also
perf tools: Defaults to 'caller' callchain order only if --children is enabled
perf tools: Improve call graph documents and help messages
perf annotate: Fix 'annotate.use_offset' config variable usage
Scott Wood (1):
tools lib traceevent: Support %ps/%pS
tools/lib/traceevent/event-parse.c | 4 +--
tools/perf/Documentation/perf-record.txt | 9 +++++--
tools/perf/Documentation/perf-report.txt | 38 ++++++++++++++++++-----------
tools/perf/Documentation/perf-top.txt | 5 ++--
tools/perf/builtin-record.c | 11 +++------
tools/perf/builtin-report.c | 17 ++++++++++---
tools/perf/builtin-top.c | 30 +++++++++++++++++++----
tools/perf/ui/browsers/annotate.c | 8 +++---
tools/perf/ui/tui/setup.c | 8 +++---
tools/perf/util/callchain.c | 42 +++++++++++++++++++++++++++++---
tools/perf/util/callchain.h | 26 ++++++++++++++++++++
tools/perf/util/util.c | 2 +-
12 files changed, 151 insertions(+), 49 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2015-10-22 22:14 Arnaldo Carvalho de Melo
@ 2015-10-23 8:28 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2015-10-23 8:28 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Borislav Petkov, Brendan Gregg,
Chandler Carruth, Dave Chinner, David Ahern, Frederic Weisbecker,
Jiri Olsa, Martin Liška, Namhyung Kim, Peter Zijlstra,
Scott Wood, Stephane Eranian, Steven Rostedt, Taeung Song,
Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 4ba792e303e278052bb0ee60cce15d6d7dc15c7c:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-22 09:33:46 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to f06cff7c59b6b252d667435d7baad48687b41002:
>
> perf annotate: Don't die() when finding an invalid config option (2015-10-22 18:10:52 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - The default for callchains is back to 'callee' when --children is not used,
> (Namhyung Kim)
>
> - Move the 'use_offset' option to the right place where the annotate code
> expects it to be to be able to properly handle it (Namhyung Kim)
>
> - Don't die when an unknown 'annotate' option is found in the perf config
> file (usually ~/.perfconfig), just warn the user (Arnaldo Carvalho de Melo)
>
> Infrastructure:
>
> - Support %ps/%pS in libtraceevent (Scott Wood)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf ui tui: Register the error callbacks before initializing the widgets
> perf annotate: Don't die() when finding an invalid config option
>
> Namhyung Kim (5):
> perf tools: Move callchain help messages to callchain.h
> perf top: Support call-graph display options also
> perf tools: Defaults to 'caller' callchain order only if --children is enabled
> perf tools: Improve call graph documents and help messages
> perf annotate: Fix 'annotate.use_offset' config variable usage
>
> Scott Wood (1):
> tools lib traceevent: Support %ps/%pS
>
> tools/lib/traceevent/event-parse.c | 4 +--
> tools/perf/Documentation/perf-record.txt | 9 +++++--
> tools/perf/Documentation/perf-report.txt | 38 ++++++++++++++++++-----------
> tools/perf/Documentation/perf-top.txt | 5 ++--
> tools/perf/builtin-record.c | 11 +++------
> tools/perf/builtin-report.c | 17 ++++++++++---
> tools/perf/builtin-top.c | 30 +++++++++++++++++++----
> tools/perf/ui/browsers/annotate.c | 8 +++---
> tools/perf/ui/tui/setup.c | 8 +++---
> tools/perf/util/callchain.c | 42 +++++++++++++++++++++++++++++---
> tools/perf/util/callchain.h | 26 ++++++++++++++++++++
> tools/perf/util/util.c | 2 +-
> 12 files changed, 151 insertions(+), 49 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2015-10-13 19:41 Arnaldo Carvalho de Melo
2015-10-14 13:09 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-10-13 19:41 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen,
Borislav Petkov, David Ahern, Frederic Weisbecker, He Kuang,
Jiri Olsa, linux-next, Martin Liska, Namhyung Kim, Peter Zijlstra,
Rabin Vincent, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling.
- Arnaldo
BTW.: There are several outstanding patchkits needing review and processing,
I'll be out this week for a conference, will try and speed up processing next
week.
The following changes since commit 0e537fef24d64f7bf3ef61a27edf64a8d9a5424c:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-08 10:52:44 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 3a70fcd3a4db56731f67f0189514953c74257944:
tools build: Fix cross compile build (2015-10-13 11:59:43 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Use the alternative with the most descriptive filename containing
a vmlinux file for a given build-id, providing a better title line
for tools such as 'annotate' (Arnaldo Carvalho de Melo)
- Remove help messages about previous right and left arrow keybidings, that
were repurposed for horizontal scrolling (Arnaldo Carvalho de Melo)
- Inform how to reset the symbol filter in the hists browser (top & report)
(Arnaldo Carvalho de Melo)
- Add 'm' key for context menu display in the hists browser, that became
inacessible with the repurposing of the right arrow key for horizontal
scrolling (Namhyung Kim)
- Use debug_frame for callchains if eh_frame is unusable (Rabin Vicent)
Build fixes:
- Fix strict-aliasing breakage with gcc 4.4 in the READ_ONCE/WRITE_ONCE code
adopted from the kernel tree, that builds with -fno-strict-aliasing while
tools/perf/ uses -Wstrict-aliasing=3 (Jiri Olsa)
- Fix unw_word_t pointer casts in code using libunwind for callchains,
fixing the build in at least 32-bit MIPS systems (Rabin Vicent)
- Workaround cross compile build problems related to fixdep (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
perf symbols: Try the .debug/ DSO cache as a last resort
perf ui browsers: Remove help messages about use of right and arrow keys
perf hists browser: Inform how to reset the symbol filter
Jiri Olsa (2):
tools include: Fix strict-aliasing rules breakage
tools build: Fix cross compile build
Namhyung Kim (1):
perf hists browser: Add 'm' key for context menu display
Rabin Vincent (2):
perf callchain: Use debug_frame if eh_frame is unusable
perf callchains: Fix unw_word_t pointer casts
tools/build/Makefile.include | 4 ++++
tools/include/linux/compiler.h | 32 ++++++++++++++++++++++++--------
tools/perf/ui/browsers/annotate.c | 6 +++---
tools/perf/ui/browsers/hists.c | 13 ++++++++-----
tools/perf/ui/browsers/map.c | 2 +-
tools/perf/ui/browsers/scripts.c | 2 +-
tools/perf/util/symbol.c | 18 +++++++++---------
tools/perf/util/unwind-libunwind.c | 14 ++++++++------
8 files changed, 58 insertions(+), 33 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2015-10-13 19:41 Arnaldo Carvalho de Melo
@ 2015-10-14 13:09 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2015-10-14 13:09 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov,
David Ahern, Frederic Weisbecker, He Kuang, Jiri Olsa, linux-next,
Martin Liska, Namhyung Kim, Peter Zijlstra, Rabin Vincent,
Stephane Eranian, Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling.
>
> - Arnaldo
>
> BTW.: There are several outstanding patchkits needing review and processing,
> I'll be out this week for a conference, will try and speed up processing next
> week.
>
> The following changes since commit 0e537fef24d64f7bf3ef61a27edf64a8d9a5424c:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-08 10:52:44 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 3a70fcd3a4db56731f67f0189514953c74257944:
>
> tools build: Fix cross compile build (2015-10-13 11:59:43 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Use the alternative with the most descriptive filename containing
> a vmlinux file for a given build-id, providing a better title line
> for tools such as 'annotate' (Arnaldo Carvalho de Melo)
>
> - Remove help messages about previous right and left arrow keybidings, that
> were repurposed for horizontal scrolling (Arnaldo Carvalho de Melo)
>
> - Inform how to reset the symbol filter in the hists browser (top & report)
> (Arnaldo Carvalho de Melo)
>
> - Add 'm' key for context menu display in the hists browser, that became
> inacessible with the repurposing of the right arrow key for horizontal
> scrolling (Namhyung Kim)
>
> - Use debug_frame for callchains if eh_frame is unusable (Rabin Vicent)
>
> Build fixes:
>
> - Fix strict-aliasing breakage with gcc 4.4 in the READ_ONCE/WRITE_ONCE code
> adopted from the kernel tree, that builds with -fno-strict-aliasing while
> tools/perf/ uses -Wstrict-aliasing=3 (Jiri Olsa)
>
> - Fix unw_word_t pointer casts in code using libunwind for callchains,
> fixing the build in at least 32-bit MIPS systems (Rabin Vicent)
>
> - Workaround cross compile build problems related to fixdep (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
> perf symbols: Try the .debug/ DSO cache as a last resort
> perf ui browsers: Remove help messages about use of right and arrow keys
> perf hists browser: Inform how to reset the symbol filter
>
> Jiri Olsa (2):
> tools include: Fix strict-aliasing rules breakage
> tools build: Fix cross compile build
>
> Namhyung Kim (1):
> perf hists browser: Add 'm' key for context menu display
>
> Rabin Vincent (2):
> perf callchain: Use debug_frame if eh_frame is unusable
> perf callchains: Fix unw_word_t pointer casts
>
> tools/build/Makefile.include | 4 ++++
> tools/include/linux/compiler.h | 32 ++++++++++++++++++++++++--------
> tools/perf/ui/browsers/annotate.c | 6 +++---
> tools/perf/ui/browsers/hists.c | 13 ++++++++-----
> tools/perf/ui/browsers/map.c | 2 +-
> tools/perf/ui/browsers/scripts.c | 2 +-
> tools/perf/util/symbol.c | 18 +++++++++---------
> tools/perf/util/unwind-libunwind.c | 14 ++++++++------
> 8 files changed, 58 insertions(+), 33 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2015-09-15 15:28 Arnaldo Carvalho de Melo
2015-09-16 7:25 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-15 15:28 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexei Starovoitov,
Brendan Gregg, Daniel Borkmann, David Ahern, He Kuang, Jiri Olsa,
Kaixu Xia, Masami Hiramatsu, Matt Fleming, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, pi3orama, Raphael Beamonte,
Wang Nan, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 9059b284caecb628fac826c2c5cc8ee85708eec1:
Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-09-15 08:50:59 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to bbbe6bf6037d77816c4a19aaf35f4cecf662b49a:
perf tools: Introduce regs_query_register_offset() for x86 (2015-09-15 09:48:33 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Enhance the error reporting of tracepoint event parsing, e.g.:
$ oldperf record -e sched:sched_switc usleep 1
event syntax error: 'sched:sched_switc'
\___ unknown tracepoint
Run 'perf list' for a list of valid events
Now we get the much nicer:
$ perf record -e sched:sched_switc ls
event syntax error: 'sched:sched_switc'
\___ can't access trace events
Error: No permissions to read /sys/kernel/debug/tracing/events/sched/sched_switc
Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug'
And after we have those mount point permissions fixed:
$ perf record -e sched:sched_switc ls
event syntax error: 'sched:sched_switc'
\___ unknown tracepoint
Error: File /sys/kernel/debug/tracing/events/sched/sched_switc not found.
Hint: Perhaps this kernel misses some CONFIG_ setting to enable this feature?.
Now its just a matter of using what git uses to suggest alternatives when we
make a typo, i.e. that it is just an 'h' missing :-)
I.e. basically now the event parsing routing uses the strerror_open()
routines introduced by and used in 'perf trace' work. (Jiri Olsa)
Infrastructure:
- Export init/exit_probe_symbol_maps() from 'perf probe' for use in eBPF
(Namhyung Kim)
- Free perf_probe_event in cleanup_perf_probe_events() (Namhyung Kim)
- regs_query_register_offset() infrastructure + implementation for x86.
First user will be the perf/eBPF code (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Jiri Olsa (4):
tools: Add err.h with ERR_PTR PTR_ERR interface
perf tools: Propagate error info for the tracepoint parsing
perf evsel: Propagate error info from tp_format
perf tools: Enhance parsing events tracepoint error output
Namhyung Kim (2):
perf probe: Free perf_probe_event in cleanup_perf_probe_events()
perf probe: Export init/exit_probe_symbol_maps()
Wang Nan (2):
perf tools: regs_query_register_offset() infrastructure
perf tools: Introduce regs_query_register_offset() for x86
tools/include/linux/err.h | 49 +++++++++++
tools/perf/arch/x86/Makefile | 1 +
tools/perf/arch/x86/util/dwarf-regs.c | 122 ++++++++++++++++++++--------
tools/perf/builtin-probe.c | 5 ++
tools/perf/builtin-trace.c | 19 +++--
tools/perf/config/Makefile | 4 +
tools/perf/tests/evsel-tp-sched.c | 10 ++-
tools/perf/tests/mmap-basic.c | 3 +-
tools/perf/tests/openat-syscall-all-cpus.c | 3 +-
tools/perf/tests/openat-syscall-tp-fields.c | 3 +-
tools/perf/tests/openat-syscall.c | 3 +-
tools/perf/util/evlist.c | 3 +-
tools/perf/util/evsel.c | 16 +++-
tools/perf/util/evsel.h | 3 +
tools/perf/util/include/dwarf-regs.h | 8 ++
tools/perf/util/parse-events.c | 66 +++++++++++----
tools/perf/util/parse-events.h | 3 +-
tools/perf/util/parse-events.y | 16 ++--
tools/perf/util/probe-event.c | 32 ++++----
tools/perf/util/probe-event.h | 2 +
tools/perf/util/trace-event.c | 15 +++-
21 files changed, 291 insertions(+), 95 deletions(-)
create mode 100644 tools/include/linux/err.h
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2015-09-15 15:28 Arnaldo Carvalho de Melo
@ 2015-09-16 7:25 ` Ingo Molnar
2015-09-16 13:50 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 31+ messages in thread
From: Ingo Molnar @ 2015-09-16 7:25 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Alexei Starovoitov, Brendan Gregg, Daniel Borkmann,
David Ahern, He Kuang, Jiri Olsa, Kaixu Xia, Masami Hiramatsu,
Matt Fleming, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
pi3orama, Raphael Beamonte, Wang Nan, Zefan Li,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 9059b284caecb628fac826c2c5cc8ee85708eec1:
>
> Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-09-15 08:50:59 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
So your perf/urgent bits now conflict with the latest perf/core, in
tools/perf/ui/browsers/hists.c. I have merged perf/urgent into perf/core - please
double check my resolution (d71b0ad8d309).
>
> for you to fetch changes up to bbbe6bf6037d77816c4a19aaf35f4cecf662b49a:
>
> perf tools: Introduce regs_query_register_offset() for x86 (2015-09-15 09:48:33 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Enhance the error reporting of tracepoint event parsing, e.g.:
>
> $ oldperf record -e sched:sched_switc usleep 1
> event syntax error: 'sched:sched_switc'
> \___ unknown tracepoint
> Run 'perf list' for a list of valid events
>
> Now we get the much nicer:
>
> $ perf record -e sched:sched_switc ls
> event syntax error: 'sched:sched_switc'
> \___ can't access trace events
>
> Error: No permissions to read /sys/kernel/debug/tracing/events/sched/sched_switc
> Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug'
>
> And after we have those mount point permissions fixed:
>
> $ perf record -e sched:sched_switc ls
> event syntax error: 'sched:sched_switc'
> \___ unknown tracepoint
>
> Error: File /sys/kernel/debug/tracing/events/sched/sched_switc not found.
> Hint: Perhaps this kernel misses some CONFIG_ setting to enable this feature?.
>
> Now its just a matter of using what git uses to suggest alternatives when we
> make a typo, i.e. that it is just an 'h' missing :-)
Nice changes!
Btw., wouldn't it be even better to allow partial matches? Not allowing
'sched:sched_switc' is unnecessarily pedantic IMHO.
For example 'perf list' allows partial matches as well. As long as the resulting
event is unique, we should allow partial matches. If it's not unique, we should
print the first 3 matching entries or so.
There's a real UI advantage as well: I could abbreviate the command line with:
-e sched_sw
instead of always being forced to type out the full tracepoint name.
(Programmatic tracepoint usage and portable scripts should naturally always spell
out the full event, to make sure new tracepoints don't cause overlaps - but ad-hoc
usage can do abbreviations just fine.)
> I.e. basically now the event parsing routing uses the strerror_open()
> routines introduced by and used in 'perf trace' work. (Jiri Olsa)
>
> Infrastructure:
>
> - Export init/exit_probe_symbol_maps() from 'perf probe' for use in eBPF
> (Namhyung Kim)
>
> - Free perf_probe_event in cleanup_perf_probe_events() (Namhyung Kim)
>
> - regs_query_register_offset() infrastructure + implementation for x86.
> First user will be the perf/eBPF code (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Jiri Olsa (4):
> tools: Add err.h with ERR_PTR PTR_ERR interface
> perf tools: Propagate error info for the tracepoint parsing
> perf evsel: Propagate error info from tp_format
> perf tools: Enhance parsing events tracepoint error output
>
> Namhyung Kim (2):
> perf probe: Free perf_probe_event in cleanup_perf_probe_events()
> perf probe: Export init/exit_probe_symbol_maps()
>
> Wang Nan (2):
> perf tools: regs_query_register_offset() infrastructure
> perf tools: Introduce regs_query_register_offset() for x86
>
> tools/include/linux/err.h | 49 +++++++++++
> tools/perf/arch/x86/Makefile | 1 +
> tools/perf/arch/x86/util/dwarf-regs.c | 122 ++++++++++++++++++++--------
> tools/perf/builtin-probe.c | 5 ++
> tools/perf/builtin-trace.c | 19 +++--
> tools/perf/config/Makefile | 4 +
> tools/perf/tests/evsel-tp-sched.c | 10 ++-
> tools/perf/tests/mmap-basic.c | 3 +-
> tools/perf/tests/openat-syscall-all-cpus.c | 3 +-
> tools/perf/tests/openat-syscall-tp-fields.c | 3 +-
> tools/perf/tests/openat-syscall.c | 3 +-
> tools/perf/util/evlist.c | 3 +-
> tools/perf/util/evsel.c | 16 +++-
> tools/perf/util/evsel.h | 3 +
> tools/perf/util/include/dwarf-regs.h | 8 ++
> tools/perf/util/parse-events.c | 66 +++++++++++----
> tools/perf/util/parse-events.h | 3 +-
> tools/perf/util/parse-events.y | 16 ++--
> tools/perf/util/probe-event.c | 32 ++++----
> tools/perf/util/probe-event.h | 2 +
> tools/perf/util/trace-event.c | 15 +++-
> 21 files changed, 291 insertions(+), 95 deletions(-)
> create mode 100644 tools/include/linux/err.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [GIT PULL 0/8] perf/core improvements and fixes
2015-09-16 7:25 ` Ingo Molnar
@ 2015-09-16 13:50 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-09-16 13:50 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Alexei Starovoitov, Brendan Gregg, Daniel Borkmann,
David Ahern, He Kuang, Jiri Olsa, Kaixu Xia, Masami Hiramatsu,
Matt Fleming, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
pi3orama, Raphael Beamonte, Wang Nan, Zefan Li
Em Wed, Sep 16, 2015 at 09:25:44AM +0200, Ingo Molnar escreveu:
>
> * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
>
> > Hi Ingo,
> >
> > Please consider pulling,
> >
> > - Arnaldo
> >
> > The following changes since commit 9059b284caecb628fac826c2c5cc8ee85708eec1:
> >
> > Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-09-15 08:50:59 +0200)
> >
> > are available in the git repository at:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> So your perf/urgent bits now conflict with the latest perf/core, in
> tools/perf/ui/browsers/hists.c. I have merged perf/urgent into perf/core - please
> double check my resolution (d71b0ad8d309).
Looks fine, tested it even, thanks!
- Arnaldo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2015-06-17 21:22 Arnaldo Carvalho de Melo
2015-06-18 7:40 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-06-17 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Don Zickus, Frederic Weisbecker,
He Kuang, Jiri Olsa, Li Zhang, Masami Hiramatsu, Namhyung Kim,
Naohiro Aota, Peter Zijlstra, pi3orama, Stephane Eranian,
Sukadev Bhattiprolu, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, this is on top of perf-core-for-mingo, that is
still outstanding,
Thanks!
- Arnaldo
The following changes since commit b031220d520238075bd99513a420e65cf37866ad:
perf probe: Fix to return error if no probe is added (2015-06-16 11:39:51 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
for you to fetch changes up to 5d484f99aed547e235f2229653c95392a1bc3692:
perf top: Allow disabling/enabling events dynamicly (2015-06-17 16:50:52 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Allow disabling/enabling events dynamicly in 'perf top':
a 'perf top' session can instantly become a 'perf report'
one, i.e. going from dynamic analysis to a static one,
returning to a dynamic one is possible, to toogle the
modes, just press CTRL+z. (Arnaldo Carvalho de Melo)
- Greatly speed up 'perf probe --list' by caching debuginfo
(Masami Hiramatsu)
- Fix 'perf trace' race condition at the end of started
workloads (Sukadev Bhattiprolu)
- Fix a problem when opening old perf.data with different
byte order (Wang Nan)
Infrastructure:
- Ignore .config-detected in .gitignore (Wang Nan)
- Move libtraceevent dynamic list to separated LDFLAGS
variable (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf evlist: Add toggle_enable() method
perf top: Allow disabling/enabling events dynamicly
Masami Hiramatsu (2):
perf probe: Show usage even if the last event is skipped
perf probe: Speed up perf probe --list by caching debuginfo
Sukadev Bhattiprolu (1):
perf trace: Fix race condition at the end of started workloads
Wang Nan (3):
perf tools: Ignore .config-detected in .gitignore
perf tools: Fix a problem when opening old perf.data with different byte order
perf tools: Move libtraceevent dynamic list to separated LDFLAGS variable
tools/perf/.gitignore | 1 +
tools/perf/Makefile.perf | 8 ++--
tools/perf/builtin-top.c | 52 ++++++++++++++++++--------
tools/perf/ui/browsers/hists.c | 2 +
tools/perf/util/evlist.c | 18 ++++++++-
tools/perf/util/evlist.h | 2 +
tools/perf/util/probe-event.c | 83 +++++++++++++++++++++++++++++++-----------
tools/perf/util/session.c | 50 ++++++++++++++++++-------
8 files changed, 160 insertions(+), 56 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2015-06-17 21:22 Arnaldo Carvalho de Melo
@ 2015-06-18 7:40 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2015-06-18 7:40 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Borislav Petkov, David Ahern,
Don Zickus, Frederic Weisbecker, He Kuang, Jiri Olsa, Li Zhang,
Masami Hiramatsu, Namhyung Kim, Naohiro Aota, Peter Zijlstra,
pi3orama, Stephane Eranian, Sukadev Bhattiprolu, Wang Nan,
Zefan Li, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling, this is on top of perf-core-for-mingo, that is
> still outstanding,
>
> Thanks!
>
> - Arnaldo
>
> The following changes since commit b031220d520238075bd99513a420e65cf37866ad:
>
> perf probe: Fix to return error if no probe is added (2015-06-16 11:39:51 -0300)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
>
> for you to fetch changes up to 5d484f99aed547e235f2229653c95392a1bc3692:
>
> perf top: Allow disabling/enabling events dynamicly (2015-06-17 16:50:52 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Allow disabling/enabling events dynamicly in 'perf top':
> a 'perf top' session can instantly become a 'perf report'
> one, i.e. going from dynamic analysis to a static one,
> returning to a dynamic one is possible, to toogle the
> modes, just press CTRL+z. (Arnaldo Carvalho de Melo)
Nice!! :-)
Btw., it would be nice if the status line carried information about whether
collection is 'frozen' or running, at a glance. A hint might also suggest how to
unfreeze the session - in case someone pressed Ctrl-Z to suspend the perf top
session ...
Also, there's now a GUI inconsistency with perf report: which will now exit on
Ctrl-Z. It should probably print a warning in the status line instead, that
freezing/unfreezing only works in 'perf top'.
>
> - Greatly speed up 'perf probe --list' by caching debuginfo
> (Masami Hiramatsu)
>
> - Fix 'perf trace' race condition at the end of started
> workloads (Sukadev Bhattiprolu)
>
> - Fix a problem when opening old perf.data with different
> byte order (Wang Nan)
>
> Infrastructure:
>
> - Ignore .config-detected in .gitignore (Wang Nan)
>
> - Move libtraceevent dynamic list to separated LDFLAGS
> variable (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf evlist: Add toggle_enable() method
> perf top: Allow disabling/enabling events dynamicly
>
> Masami Hiramatsu (2):
> perf probe: Show usage even if the last event is skipped
> perf probe: Speed up perf probe --list by caching debuginfo
>
> Sukadev Bhattiprolu (1):
> perf trace: Fix race condition at the end of started workloads
>
> Wang Nan (3):
> perf tools: Ignore .config-detected in .gitignore
> perf tools: Fix a problem when opening old perf.data with different byte order
> perf tools: Move libtraceevent dynamic list to separated LDFLAGS variable
>
> tools/perf/.gitignore | 1 +
> tools/perf/Makefile.perf | 8 ++--
> tools/perf/builtin-top.c | 52 ++++++++++++++++++--------
> tools/perf/ui/browsers/hists.c | 2 +
> tools/perf/util/evlist.c | 18 ++++++++-
> tools/perf/util/evlist.h | 2 +
> tools/perf/util/probe-event.c | 83 +++++++++++++++++++++++++++++++-----------
> tools/perf/util/session.c | 50 ++++++++++++++++++-------
> 8 files changed, 160 insertions(+), 56 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2014-10-01 19:50 Arnaldo Carvalho de Melo
2014-10-03 3:31 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-10-01 19:50 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen,
Chang Hyun Park, David Ahern, Davidlohr Bueso, Don Zickus,
Douglas Hatch, Frederic Weisbecker, H . Peter Anvin, Jean Pihet,
Jiri Olsa, linux-arm-kernel, Matt Fleming, Mike Galbraith,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Scott J Norton,
Stephane Eranian, Thomas Gleixner, Waiman Long, Will Deacon,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
Best Regards,
- Arnaldo
The following changes since commit 07394b5f13a04f86b27e0ddd96a36c7d9bfe1a4f:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-09-27 09:15:48 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 281f92f233a59ef52bb45287242bd815a67f5647:
perf record: Fix error message for --filter option not coming after tracepoint (2014-10-01 15:05:32 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
. Fix mmap return address truncation to 32-bit in 'perf trace'. (Chang Hyun Park)
o Support operations for shared futexes. (Davidlohr Bueso)
. Fix error message for --filter option not coming after tracepoint. (Arnaldo Carvalho de Melo)
Infrastructure:
. Refactor unit and scale function parameters for pmu parsing routines. (Matt Fleming)
. Improve DSO long names lookup with rbtree, resulting in great speedup for
workloads with lots of DSOs. (Waiman Long)
. Fix build breakage on arm64 targets. (Will Deacon)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf record: Fix error message for --filter option not coming after tracepoint
Chang Hyun Park (1):
perf trace: Fix mmap return address truncation to 32-bit
Davidlohr Bueso (2):
perf bench futex: Support operations for shared futexes
perf bench futex: Sanitize -q option in requeue
Matt Fleming (1):
perf tools: Refactor unit and scale function parameters
Waiman Long (2):
perf symbols: Encapsulate dsos list head into struct dsos
perf symbols: Improve DSO long names lookup speed with rbtree
Will Deacon (1):
perf tools: Fix build breakage on arm64 targets
tools/perf/arch/arm64/util/unwind-libunwind.c | 1 +
tools/perf/bench/futex-hash.c | 7 ++-
tools/perf/bench/futex-requeue.c | 28 +++++----
tools/perf/bench/futex-wake.c | 15 +++--
tools/perf/builtin-trace.c | 6 +-
tools/perf/util/dso.c | 85 +++++++++++++++++++++++----
tools/perf/util/dso.h | 16 ++++-
tools/perf/util/header.c | 32 +++++-----
tools/perf/util/machine.c | 25 ++++----
tools/perf/util/machine.h | 5 +-
tools/perf/util/parse-events.c | 11 ++--
tools/perf/util/pmu.c | 38 +++++++-----
tools/perf/util/pmu.h | 7 ++-
tools/perf/util/probe-event.c | 3 +-
tools/perf/util/symbol-elf.c | 7 ++-
15 files changed, 200 insertions(+), 86 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2014-10-01 19:50 Arnaldo Carvalho de Melo
@ 2014-10-03 3:31 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2014-10-03 3:31 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Chang Hyun Park,
David Ahern, Davidlohr Bueso, Don Zickus, Douglas Hatch,
Frederic Weisbecker, H . Peter Anvin, Jean Pihet, Jiri Olsa,
linux-arm-kernel, Matt Fleming, Mike Galbraith, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Scott J Norton, Stephane Eranian,
Thomas Gleixner, Waiman Long, Will Deacon,
Arnaldo Carvalho de Melo, Peter Zijlstra
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> Best Regards,
>
> - Arnaldo
>
> The following changes since commit 07394b5f13a04f86b27e0ddd96a36c7d9bfe1a4f:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-09-27 09:15:48 +0200)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 281f92f233a59ef52bb45287242bd815a67f5647:
>
> perf record: Fix error message for --filter option not coming after tracepoint (2014-10-01 15:05:32 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> . Fix mmap return address truncation to 32-bit in 'perf trace'. (Chang Hyun Park)
>
> o Support operations for shared futexes. (Davidlohr Bueso)
>
> . Fix error message for --filter option not coming after tracepoint. (Arnaldo Carvalho de Melo)
>
> Infrastructure:
>
> . Refactor unit and scale function parameters for pmu parsing routines. (Matt Fleming)
>
> . Improve DSO long names lookup with rbtree, resulting in great speedup for
> workloads with lots of DSOs. (Waiman Long)
>
> . Fix build breakage on arm64 targets. (Will Deacon)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> perf record: Fix error message for --filter option not coming after tracepoint
>
> Chang Hyun Park (1):
> perf trace: Fix mmap return address truncation to 32-bit
>
> Davidlohr Bueso (2):
> perf bench futex: Support operations for shared futexes
> perf bench futex: Sanitize -q option in requeue
>
> Matt Fleming (1):
> perf tools: Refactor unit and scale function parameters
>
> Waiman Long (2):
> perf symbols: Encapsulate dsos list head into struct dsos
> perf symbols: Improve DSO long names lookup speed with rbtree
>
> Will Deacon (1):
> perf tools: Fix build breakage on arm64 targets
>
> tools/perf/arch/arm64/util/unwind-libunwind.c | 1 +
> tools/perf/bench/futex-hash.c | 7 ++-
> tools/perf/bench/futex-requeue.c | 28 +++++----
> tools/perf/bench/futex-wake.c | 15 +++--
> tools/perf/builtin-trace.c | 6 +-
> tools/perf/util/dso.c | 85 +++++++++++++++++++++++----
> tools/perf/util/dso.h | 16 ++++-
> tools/perf/util/header.c | 32 +++++-----
> tools/perf/util/machine.c | 25 ++++----
> tools/perf/util/machine.h | 5 +-
> tools/perf/util/parse-events.c | 11 ++--
> tools/perf/util/pmu.c | 38 +++++++-----
> tools/perf/util/pmu.h | 7 ++-
> tools/perf/util/probe-event.c | 3 +-
> tools/perf/util/symbol-elf.c | 7 ++-
> 15 files changed, 200 insertions(+), 86 deletions(-)
Pulled into tip:perf/core, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2014-05-19 12:30 Jiri Olsa
2014-05-20 6:37 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Jiri Olsa @ 2014-05-19 12:30 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Corey Ashford,
David Ahern, Dongsheng Yang, Frederic Weisbecker, Jean Pihet,
Masanari Iida, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Peter Zijlstra, Will Deacon, Jiri Olsa
hi Ingo,
please consider pulling
thanks,
jirka
The following changes since commit 26f273802b6ed28e059f4359bc7711dffceda022:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-05-12 17:57:48 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo
for you to fetch changes up to 97eac381b113932bd7bd4a5c3c68b18e9ff7a2a0:
perf tools: Add libdw DWARF post unwind support for ARM (2014-05-16 11:39:29 +0200)
----------------------------------------------------------------
perf/core improvements and fixes:
. Add libdw DWARF post unwind support for ARM (Jean Pihet)
. Consolidate types.h for ARM and ARM64 (Jean Pihet)
. Fix possible null pointer dereference in session.c (Masanari Iida)
. Cleanup, remove unused variables in map_switch_event() (Dongsheng Yang)
. Remove nr_state_machine_bugs in perf latency (Dongsheng Yang)
. Remove usage of trace_sched_wakeup(.success) (Peter Zijlstra)
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
----------------------------------------------------------------
Dongsheng Yang (2):
perf sched: Remove nr_state_machine_bugs in perf latency
perf sched: Cleanup, remove unused variables in map_switch_event()
Jean Pihet (4):
perf tools: Consolidate types.h for ARM and ARM64
perf tests: Introduce perf_regs_load function on ARM
perf tests: Add dwarf unwind test on ARM
perf tools: Add libdw DWARF post unwind support for ARM
Masanari Iida (1):
perf session: Fix possible null pointer dereference in session.c
Peter Zijlstra (1):
perf tools: Remove usage of trace_sched_wakeup(.success)
tools/perf/Makefile.perf | 2 +-
tools/perf/arch/arm/Makefile | 7 ++++
tools/perf/arch/arm/include/perf_regs.h | 7 +++-
tools/perf/arch/arm/tests/dwarf-unwind.c | 60 +++++++++++++++++++++++++++++++
tools/perf/arch/arm/tests/regs_load.S | 58 ++++++++++++++++++++++++++++++
tools/perf/arch/arm/util/unwind-libdw.c | 36 +++++++++++++++++++
tools/perf/arch/arm64/include/perf_regs.h | 2 +-
tools/perf/builtin-sched.c | 32 ++++++-----------
tools/perf/config/Makefile | 4 +--
tools/perf/tests/builtin-test.c | 2 +-
tools/perf/tests/evsel-tp-sched.c | 3 --
tools/perf/tests/tests.h | 2 +-
tools/perf/util/session.c | 5 +--
13 files changed, 187 insertions(+), 33 deletions(-)
create mode 100644 tools/perf/arch/arm/tests/dwarf-unwind.c
create mode 100644 tools/perf/arch/arm/tests/regs_load.S
create mode 100644 tools/perf/arch/arm/util/unwind-libdw.c
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2014-05-19 12:30 Jiri Olsa
@ 2014-05-20 6:37 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2014-05-20 6:37 UTC (permalink / raw)
To: Jiri Olsa
Cc: linux-kernel, Arnaldo Carvalho de Melo, Corey Ashford,
David Ahern, Dongsheng Yang, Frederic Weisbecker, Jean Pihet,
Masanari Iida, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Peter Zijlstra, Will Deacon
* Jiri Olsa <jolsa@kernel.org> wrote:
> hi Ingo,
> please consider pulling
>
> thanks,
> jirka
>
>
> The following changes since commit 26f273802b6ed28e059f4359bc7711dffceda022:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-05-12 17:57:48 +0200)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 97eac381b113932bd7bd4a5c3c68b18e9ff7a2a0:
>
> perf tools: Add libdw DWARF post unwind support for ARM (2014-05-16 11:39:29 +0200)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> . Add libdw DWARF post unwind support for ARM (Jean Pihet)
>
> . Consolidate types.h for ARM and ARM64 (Jean Pihet)
>
> . Fix possible null pointer dereference in session.c (Masanari Iida)
>
> . Cleanup, remove unused variables in map_switch_event() (Dongsheng Yang)
>
> . Remove nr_state_machine_bugs in perf latency (Dongsheng Yang)
>
> . Remove usage of trace_sched_wakeup(.success) (Peter Zijlstra)
>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
>
> ----------------------------------------------------------------
> Dongsheng Yang (2):
> perf sched: Remove nr_state_machine_bugs in perf latency
> perf sched: Cleanup, remove unused variables in map_switch_event()
>
> Jean Pihet (4):
> perf tools: Consolidate types.h for ARM and ARM64
> perf tests: Introduce perf_regs_load function on ARM
> perf tests: Add dwarf unwind test on ARM
> perf tools: Add libdw DWARF post unwind support for ARM
>
> Masanari Iida (1):
> perf session: Fix possible null pointer dereference in session.c
>
> Peter Zijlstra (1):
> perf tools: Remove usage of trace_sched_wakeup(.success)
>
> tools/perf/Makefile.perf | 2 +-
> tools/perf/arch/arm/Makefile | 7 ++++
> tools/perf/arch/arm/include/perf_regs.h | 7 +++-
> tools/perf/arch/arm/tests/dwarf-unwind.c | 60 +++++++++++++++++++++++++++++++
> tools/perf/arch/arm/tests/regs_load.S | 58 ++++++++++++++++++++++++++++++
> tools/perf/arch/arm/util/unwind-libdw.c | 36 +++++++++++++++++++
> tools/perf/arch/arm64/include/perf_regs.h | 2 +-
> tools/perf/builtin-sched.c | 32 ++++++-----------
> tools/perf/config/Makefile | 4 +--
> tools/perf/tests/builtin-test.c | 2 +-
> tools/perf/tests/evsel-tp-sched.c | 3 --
> tools/perf/tests/tests.h | 2 +-
> tools/perf/util/session.c | 5 +--
> 13 files changed, 187 insertions(+), 33 deletions(-)
> create mode 100644 tools/perf/arch/arm/tests/dwarf-unwind.c
> create mode 100644 tools/perf/arch/arm/tests/regs_load.S
> create mode 100644 tools/perf/arch/arm/util/unwind-libdw.c
Pulled, thanks a lot Jiri!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2012-09-06 19:31 Arnaldo Carvalho de Melo
2012-09-07 5:39 ` Ingo Molnar
0 siblings, 1 reply; 31+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-09-06 19:31 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Corey Ashford,
David Ahern, Frederic Weisbecker, Ingo Molnar, Jiri Olsa,
Joel Uckelman, Mike Galbraith, Namhyung Kim, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Stephane Eranian, Steven Rostedt,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 7a4ec938857cf534270b23545495300fbac7f5de:
perf tools: Allow user to indicate path to objdump in command line (2012-09-05 19:41:55 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
for you to fetch changes up to 275ef3878f698941353780440fec6926107a320b:
perf tools: Fix cache event name generation (2012-09-06 15:01:08 -0300)
----------------------------------------------------------------
perf/core improvements and fixes
. Fix hardware cache event name generation, fix from Jiri Olsa
. Add round trip test for sw, hw and cache event names, catching the
problem Jiri fixed, after Jiri's patch, the test passes successfully.
. Clean target should do clean for lib/traceevent too, fix from David Ahern
. Check the right variable for allocation failure, fix from Namhyung Kim
. Set up evsel->tp_format regardless of evsel->name being set already,
fix from Namhyung Kim
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
perf test: Add round trip test for sw and hw event names
perf tools: Remove extraneous newline when parsing hardware cache events
perf evlist: Add fprintf method
perf test: Add roundtrip test for hardware cache events
David Ahern (1):
perf tools: Clean target should do clean for lib/traceevent too
Jiri Olsa (1):
perf tools: Fix cache event name generation
Namhyung Kim (2):
perf header: Fix a typo on evsel
perf header: Prepare tracepoint events regardless of name
tools/perf/Makefile | 5 +-
tools/perf/builtin-test.c | 114 ++++++++++++++++++++++++++++++++++++++++
tools/perf/util/evlist.c | 13 +++++
tools/perf/util/evlist.h | 2 +
tools/perf/util/evsel.c | 6 +--
tools/perf/util/evsel.h | 6 ++-
tools/perf/util/header.c | 36 ++++++++-----
tools/perf/util/parse-events.c | 2 +-
8 files changed, 163 insertions(+), 21 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 0/8] perf/core improvements and fixes
2012-09-06 19:31 Arnaldo Carvalho de Melo
@ 2012-09-07 5:39 ` Ingo Molnar
0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2012-09-07 5:39 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Corey Ashford, David Ahern, Frederic Weisbecker,
Ingo Molnar, Jiri Olsa, Joel Uckelman, Mike Galbraith,
Namhyung Kim, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Stephane Eranian, Steven Rostedt, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 7a4ec938857cf534270b23545495300fbac7f5de:
>
> perf tools: Allow user to indicate path to objdump in command line (2012-09-05 19:41:55 -0300)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
>
> for you to fetch changes up to 275ef3878f698941353780440fec6926107a320b:
>
> perf tools: Fix cache event name generation (2012-09-06 15:01:08 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes
>
> . Fix hardware cache event name generation, fix from Jiri Olsa
>
> . Add round trip test for sw, hw and cache event names, catching the
> problem Jiri fixed, after Jiri's patch, the test passes successfully.
>
> . Clean target should do clean for lib/traceevent too, fix from David Ahern
>
> . Check the right variable for allocation failure, fix from Namhyung Kim
>
> . Set up evsel->tp_format regardless of evsel->name being set already,
> fix from Namhyung Kim
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (4):
> perf test: Add round trip test for sw and hw event names
> perf tools: Remove extraneous newline when parsing hardware cache events
> perf evlist: Add fprintf method
> perf test: Add roundtrip test for hardware cache events
>
> David Ahern (1):
> perf tools: Clean target should do clean for lib/traceevent too
>
> Jiri Olsa (1):
> perf tools: Fix cache event name generation
>
> Namhyung Kim (2):
> perf header: Fix a typo on evsel
> perf header: Prepare tracepoint events regardless of name
>
> tools/perf/Makefile | 5 +-
> tools/perf/builtin-test.c | 114 ++++++++++++++++++++++++++++++++++++++++
> tools/perf/util/evlist.c | 13 +++++
> tools/perf/util/evlist.h | 2 +
> tools/perf/util/evsel.c | 6 +--
> tools/perf/util/evsel.h | 6 ++-
> tools/perf/util/header.c | 36 ++++++++-----
> tools/perf/util/parse-events.c | 2 +-
> 8 files changed, 163 insertions(+), 21 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2018-03-29 7:23 UTC | newest]
Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-29 23:05 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 1/8] perf trace: Add cmd string table to decode sys_bpf first arg Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 2/8] perf script: Enable printing of branch stack Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 3/8] perf tools: Make sure fixdep is built before libbpf Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 4/8] perf bpf: Attach eBPF filter to perf event Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 5/8] perf record: Add clang options for compiling BPF scripts Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 6/8] perf tools: Compile scriptlets to BPF objects when passing '.c' to --event Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 7/8] tools build: Fix libiberty feature detection Arnaldo Carvalho de Melo
2015-10-29 23:05 ` [PATCH 8/8] perf unwind: Pass symbol source to libunwind Arnaldo Carvalho de Melo
2015-10-30 9:10 ` [GIT PULL 0/8] perf/core improvements and fixes Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2018-03-28 18:49 Arnaldo Carvalho de Melo
2018-03-29 7:23 ` Ingo Molnar
2017-10-03 12:55 Arnaldo Carvalho de Melo
2017-10-03 16:38 ` Ingo Molnar
2016-01-15 21:40 Arnaldo Carvalho de Melo
2016-01-19 7:32 ` Ingo Molnar
2015-10-22 22:14 Arnaldo Carvalho de Melo
2015-10-23 8:28 ` Ingo Molnar
2015-10-13 19:41 Arnaldo Carvalho de Melo
2015-10-14 13:09 ` Ingo Molnar
2015-09-15 15:28 Arnaldo Carvalho de Melo
2015-09-16 7:25 ` Ingo Molnar
2015-09-16 13:50 ` Arnaldo Carvalho de Melo
2015-06-17 21:22 Arnaldo Carvalho de Melo
2015-06-18 7:40 ` Ingo Molnar
2014-10-01 19:50 Arnaldo Carvalho de Melo
2014-10-03 3:31 ` Ingo Molnar
2014-05-19 12:30 Jiri Olsa
2014-05-20 6:37 ` Ingo Molnar
2012-09-06 19:31 Arnaldo Carvalho de Melo
2012-09-07 5:39 ` Ingo Molnar
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).