* [GIT PULL 0/8] perf/core improvements and fixes
@ 2017-10-03 12:55 Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 1/8] perf tests attr: Fix task term values Arnaldo Carvalho de Melo
` (8 more replies)
0 siblings, 9 replies; 34+ 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] 34+ messages in thread
* [PATCH 1/8] perf tests attr: Fix task term values
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 2/8] perf test attr: Fix python error on empty result Arnaldo Carvalho de Melo
` (7 subsequent siblings)
8 siblings, 0 replies; 34+ 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, Jiri Olsa, David Ahern,
Namhyung Kim, Peter Zijlstra, Thomas-Mich Richter,
Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
The perf_event_attr::task is 1 by default for first (tracking) event in
the session. Setting task=1 as default and adding task=0 for cases that
need it.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/20170703145030.12903-16-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
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 +
4 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/perf/tests/attr/base-record b/tools/perf/tests/attr/base-record
index 31e0b1da830b..37940665f736 100644
--- a/tools/perf/tests/attr/base-record
+++ b/tools/perf/tests/attr/base-record
@@ -23,7 +23,7 @@ comm=1
freq=1
inherit_stat=0
enable_on_exec=1
-task=0
+task=1
watermark=0
precise_ip=0|1|2|3
mmap_data=0
diff --git a/tools/perf/tests/attr/test-record-group b/tools/perf/tests/attr/test-record-group
index 6e7961f6f7a5..618ba1c17474 100644
--- a/tools/perf/tests/attr/test-record-group
+++ b/tools/perf/tests/attr/test-record-group
@@ -17,5 +17,6 @@ sample_type=327
read_format=4
mmap=0
comm=0
+task=0
enable_on_exec=0
disabled=0
diff --git a/tools/perf/tests/attr/test-record-group-sampling b/tools/perf/tests/attr/test-record-group-sampling
index ef59afd6d635..f906b793196f 100644
--- a/tools/perf/tests/attr/test-record-group-sampling
+++ b/tools/perf/tests/attr/test-record-group-sampling
@@ -23,7 +23,7 @@ sample_type=343
# PERF_FORMAT_ID | PERF_FORMAT_GROUP
read_format=12
-
+task=0
mmap=0
comm=0
enable_on_exec=0
diff --git a/tools/perf/tests/attr/test-record-group1 b/tools/perf/tests/attr/test-record-group1
index 87a222d014d8..48e8bd12fe46 100644
--- a/tools/perf/tests/attr/test-record-group1
+++ b/tools/perf/tests/attr/test-record-group1
@@ -18,5 +18,6 @@ sample_type=327
read_format=4
mmap=0
comm=0
+task=0
enable_on_exec=0
disabled=0
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 2/8] perf test attr: Fix python error on empty result
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 1/8] perf tests attr: Fix task term values Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 3/8] perf test attr: Fix ignored test case result Arnaldo Carvalho de Melo
` (6 subsequent siblings)
8 siblings, 0 replies; 34+ 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, Thomas Richter, Heiko Carstens,
Hendrik Brueckner, Martin Schwidefsky, Arnaldo Carvalho de Melo
From: Thomas Richter <tmricht@linux.vnet.ibm.com>
Commit d78ada4a767 ("perf tests attr: Do not store failed events") does
not create an event file in the /tmp directory when the
perf_open_event() system call failed.
This can lead to a situation where not /tmp/event-xx-yy-zz result file
exists at all (for example on a s390x virtual machine environment) where
no CPUMF hardware is available.
The following command then fails with a python call back chain instead
of printing failure:
[root@s8360046 perf]# /usr/bin/python2 ./tests/attr.py -d ./tests/attr/ \
-p ./perf -v -ttest-stat-basic
running './tests/attr//test-stat-basic'
Traceback (most recent call last):
File "./tests/attr.py", line 379, in <module>
main()
File "./tests/attr.py", line 370, in main
run_tests(options)
File "./tests/attr.py", line 311, in run_tests
Test(f, options).run()
File "./tests/attr.py", line 300, in run
self.compare(self.expect, self.result)
File "./tests/attr.py", line 248, in compare
exp_event.diff(res_event)
UnboundLocalError: local variable 'res_event' referenced before assignment
[root@s8360046 perf]#
This patch catches this pitfall and prints an error message instead:
[root@s8360047 perf]# /usr/bin/python2 ./tests/attr.py -d ./tests/attr/ \
-p ./perf -vvv -ttest-stat-basic
running './tests/attr//test-stat-basic'
loading expected events
Event event:base-stat
fd = 1
group_fd = -1
flags = 0|8
[....]
sample_regs_user = 0
sample_stack_user = 0
'PERF_TEST_ATTR=/tmp/tmpJbMQMP ./perf stat -o /tmp/tmpJbMQMP/perf.data -e cycles kill >/dev/null 2>&1' ret '1', expected '1'
loading result events
compare
matching [event:base-stat]
match: [event:base-stat] matches []
res_event is empty
FAILED './tests/attr//test-stat-basic' - match failure
[root@s8360047 perf]#
Signed-off-by: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
LPU-Reference: 20170913081209.39570-1-tmricht@linux.vnet.ibm.com
Link: http://lkml.kernel.org/n/tip-04d63nn7svfgxdhi60gq2mlm@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/attr.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tools/perf/tests/attr.py b/tools/perf/tests/attr.py
index 6bb50e82a3e3..a13cd780148e 100644
--- a/tools/perf/tests/attr.py
+++ b/tools/perf/tests/attr.py
@@ -237,6 +237,7 @@ class Test(object):
# events in result. Fail if there's not any.
for exp_name, exp_event in expect.items():
exp_list = []
+ res_event = {}
log.debug(" matching [%s]" % exp_name)
for res_name, res_event in result.items():
log.debug(" to [%s]" % res_name)
@@ -253,7 +254,10 @@ class Test(object):
if exp_event.optional():
log.debug(" %s does not match, but is optional" % exp_name)
else:
- exp_event.diff(res_event)
+ if not res_event:
+ log.debug(" res_event is empty");
+ else:
+ exp_event.diff(res_event)
raise Fail(self, 'match failure');
match[exp_name] = exp_list
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 3/8] perf test attr: Fix ignored test case result
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 1/8] perf tests attr: Fix task term values Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 2/8] perf test attr: Fix python error on empty result Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 4/8] perf tools: Lock to protect namespaces and comm list Arnaldo Carvalho de Melo
` (5 subsequent siblings)
8 siblings, 0 replies; 34+ 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, Thomas Richter, Heiko Carstens,
Hendrik Brueckner, Martin Schwidefsky, Arnaldo Carvalho de Melo
From: Thomas Richter <tmricht@linux.vnet.ibm.com>
Command perf test -v 16 (Setup struct perf_event_attr test) always
reports success even if the test case fails. It works correctly if you
also specify -F (for don't fork).
root@s35lp76 perf]# ./perf test -v 16
15: Setup struct perf_event_attr :
--- start ---
running './tests/attr/test-record-no-delay'
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.002 MB /tmp/tmp4E1h7R/perf.data
(1 samples) ]
expected task=0, got 1
expected precise_ip=0, got 3
expected wakeup_events=1, got 0
FAILED './tests/attr/test-record-no-delay' - match failure
test child finished with 0
---- end ----
Setup struct perf_event_attr: Ok
The reason for the wrong error reporting is the return value of the
system() library call. It is called in run_dir() file tests/attr.c and
returns the exit status, in above case 0xff00.
This value is given as parameter to the exit() function which can only
handle values 0-0xff.
The child process terminates with exit value of 0 and the parent does
not detect any error.
This patch corrects the error reporting and prints the correct test
result.
Signed-off-by: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
LPU-Reference: 20170913081209.39570-2-tmricht@linux.vnet.ibm.com
Link: http://lkml.kernel.org/n/tip-rdube6rfcjsr1nzue72c7lqn@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/attr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
index c9aafed7da15..25ede4472465 100644
--- a/tools/perf/tests/attr.c
+++ b/tools/perf/tests/attr.c
@@ -166,7 +166,7 @@ static int run_dir(const char *d, const char *perf)
snprintf(cmd, 3*PATH_MAX, PYTHON " %s/attr.py -d %s/attr/ -p %s %.*s",
d, d, perf, vcnt, v);
- return system(cmd);
+ return system(cmd) ? TEST_FAIL : TEST_OK;
}
int test__attr(struct test *test __maybe_unused, int subtest __maybe_unused)
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 4/8] perf tools: Lock to protect namespaces and comm list
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2017-10-03 12:55 ` [PATCH 3/8] perf test attr: Fix ignored test case result Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 5/8] perf tools: Lock to protect comm_str rb tree Arnaldo Carvalho de Melo
` (4 subsequent siblings)
8 siblings, 0 replies; 34+ 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, Kan Liang, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, He Kuang, Lukasz Odzioba,
Namhyung Kim, Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Add two locks to protect namespaces_list and comm_list.
The lock is only needed for multithreaded code, so using mutex wrappers
provided by perf tool.
Not all the comm_list/namespaces_list accessing are protected, e.g.
thread__exec_comm. Because the multithread code for perf top event
synthesizing does not touch them. They don't need a lock.
Signed-off-by: Kan Liang <kan.liang@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Lukasz Odzioba <lukasz.odzioba@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1506696477-146932-2-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/thread.c | 53 +++++++++++++++++++++++++++++++++++++++++++-----
tools/perf/util/thread.h | 3 +++
2 files changed, 51 insertions(+), 5 deletions(-)
diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c
index c09bdb509d82..bf73117b4822 100644
--- a/tools/perf/util/thread.c
+++ b/tools/perf/util/thread.c
@@ -45,6 +45,8 @@ struct thread *thread__new(pid_t pid, pid_t tid)
thread->cpu = -1;
INIT_LIST_HEAD(&thread->namespaces_list);
INIT_LIST_HEAD(&thread->comm_list);
+ init_rwsem(&thread->namespaces_lock);
+ init_rwsem(&thread->comm_lock);
comm_str = malloc(32);
if (!comm_str)
@@ -83,18 +85,26 @@ void thread__delete(struct thread *thread)
map_groups__put(thread->mg);
thread->mg = NULL;
}
+ down_write(&thread->namespaces_lock);
list_for_each_entry_safe(namespaces, tmp_namespaces,
&thread->namespaces_list, list) {
list_del(&namespaces->list);
namespaces__free(namespaces);
}
+ up_write(&thread->namespaces_lock);
+
+ down_write(&thread->comm_lock);
list_for_each_entry_safe(comm, tmp_comm, &thread->comm_list, list) {
list_del(&comm->list);
comm__free(comm);
}
+ up_write(&thread->comm_lock);
+
unwind__finish_access(thread);
nsinfo__zput(thread->nsinfo);
+ exit_rwsem(&thread->namespaces_lock);
+ exit_rwsem(&thread->comm_lock);
free(thread);
}
@@ -125,8 +135,8 @@ struct namespaces *thread__namespaces(const struct thread *thread)
return list_first_entry(&thread->namespaces_list, struct namespaces, list);
}
-int thread__set_namespaces(struct thread *thread, u64 timestamp,
- struct namespaces_event *event)
+static int __thread__set_namespaces(struct thread *thread, u64 timestamp,
+ struct namespaces_event *event)
{
struct namespaces *new, *curr = thread__namespaces(thread);
@@ -149,6 +159,17 @@ int thread__set_namespaces(struct thread *thread, u64 timestamp,
return 0;
}
+int thread__set_namespaces(struct thread *thread, u64 timestamp,
+ struct namespaces_event *event)
+{
+ int ret;
+
+ down_write(&thread->namespaces_lock);
+ ret = __thread__set_namespaces(thread, timestamp, event);
+ up_write(&thread->namespaces_lock);
+ return ret;
+}
+
struct comm *thread__comm(const struct thread *thread)
{
if (list_empty(&thread->comm_list))
@@ -170,8 +191,8 @@ struct comm *thread__exec_comm(const struct thread *thread)
return last;
}
-int __thread__set_comm(struct thread *thread, const char *str, u64 timestamp,
- bool exec)
+static int ____thread__set_comm(struct thread *thread, const char *str,
+ u64 timestamp, bool exec)
{
struct comm *new, *curr = thread__comm(thread);
@@ -195,6 +216,17 @@ int __thread__set_comm(struct thread *thread, const char *str, u64 timestamp,
return 0;
}
+int __thread__set_comm(struct thread *thread, const char *str, u64 timestamp,
+ bool exec)
+{
+ int ret;
+
+ down_write(&thread->comm_lock);
+ ret = ____thread__set_comm(thread, str, timestamp, exec);
+ up_write(&thread->comm_lock);
+ return ret;
+}
+
int thread__set_comm_from_proc(struct thread *thread)
{
char path[64];
@@ -212,7 +244,7 @@ int thread__set_comm_from_proc(struct thread *thread)
return err;
}
-const char *thread__comm_str(const struct thread *thread)
+static const char *__thread__comm_str(const struct thread *thread)
{
const struct comm *comm = thread__comm(thread);
@@ -222,6 +254,17 @@ const char *thread__comm_str(const struct thread *thread)
return comm__str(comm);
}
+const char *thread__comm_str(const struct thread *thread)
+{
+ const char *str;
+
+ down_read((struct rw_semaphore *)&thread->comm_lock);
+ str = __thread__comm_str(thread);
+ up_read((struct rw_semaphore *)&thread->comm_lock);
+
+ return str;
+}
+
/* CHECKME: it should probably better return the max comm len from its comm list */
int thread__comm_len(struct thread *thread)
{
diff --git a/tools/perf/util/thread.h b/tools/perf/util/thread.h
index cb1a5dd5c2b9..10555d6a0b86 100644
--- a/tools/perf/util/thread.h
+++ b/tools/perf/util/thread.h
@@ -9,6 +9,7 @@
#include "symbol.h"
#include <strlist.h>
#include <intlist.h>
+#include "rwsem.h"
struct thread_stack;
struct unwind_libunwind_ops;
@@ -29,7 +30,9 @@ struct thread {
int comm_len;
bool dead; /* if set thread has exited */
struct list_head namespaces_list;
+ struct rw_semaphore namespaces_lock;
struct list_head comm_list;
+ struct rw_semaphore comm_lock;
u64 db_id;
void *priv;
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 5/8] perf tools: Lock to protect comm_str rb tree
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2017-10-03 12:55 ` [PATCH 4/8] perf tools: Lock to protect namespaces and comm list Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 6/8] perf top: Implement multithreading for perf_event__synthesize_threads Arnaldo Carvalho de Melo
` (3 subsequent siblings)
8 siblings, 0 replies; 34+ 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, Kan Liang, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, He Kuang, Lukasz Odzioba,
Namhyung Kim, Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Add comm_str_lock to protect comm_str rb tree.
The lock is only needed for multithreaded code, so using mutex wrappers
provided by perf tool.
Signed-off-by: Kan Liang <kan.liang@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Lukasz Odzioba <lukasz.odzioba@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1506696477-146932-3-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/comm.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/comm.c b/tools/perf/util/comm.c
index 7bc981b6bf29..756a9c14efbb 100644
--- a/tools/perf/util/comm.c
+++ b/tools/perf/util/comm.c
@@ -5,6 +5,7 @@
#include <stdio.h>
#include <string.h>
#include <linux/refcount.h>
+#include "rwsem.h"
struct comm_str {
char *str;
@@ -14,6 +15,7 @@ struct comm_str {
/* Should perhaps be moved to struct machine */
static struct rb_root comm_str_root;
+static struct rw_semaphore comm_str_lock = {.lock = PTHREAD_RWLOCK_INITIALIZER,};
static struct comm_str *comm_str__get(struct comm_str *cs)
{
@@ -25,7 +27,9 @@ static struct comm_str *comm_str__get(struct comm_str *cs)
static void comm_str__put(struct comm_str *cs)
{
if (cs && refcount_dec_and_test(&cs->refcnt)) {
+ down_write(&comm_str_lock);
rb_erase(&cs->rb_node, &comm_str_root);
+ up_write(&comm_str_lock);
zfree(&cs->str);
free(cs);
}
@@ -50,7 +54,8 @@ static struct comm_str *comm_str__alloc(const char *str)
return cs;
}
-static struct comm_str *comm_str__findnew(const char *str, struct rb_root *root)
+static
+struct comm_str *__comm_str__findnew(const char *str, struct rb_root *root)
{
struct rb_node **p = &root->rb_node;
struct rb_node *parent = NULL;
@@ -81,6 +86,17 @@ static struct comm_str *comm_str__findnew(const char *str, struct rb_root *root)
return new;
}
+static struct comm_str *comm_str__findnew(const char *str, struct rb_root *root)
+{
+ struct comm_str *cs;
+
+ down_write(&comm_str_lock);
+ cs = __comm_str__findnew(str, root);
+ up_write(&comm_str_lock);
+
+ return cs;
+}
+
struct comm *comm__new(const char *str, u64 timestamp, bool exec)
{
struct comm *comm = zalloc(sizeof(*comm));
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 6/8] perf top: Implement multithreading for perf_event__synthesize_threads
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2017-10-03 12:55 ` [PATCH 5/8] perf tools: Lock to protect comm_str rb tree Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 17:37 ` Ingo Molnar
2017-10-03 12:55 ` [PATCH 7/8] perf top: Add option to set the number of thread for event synthesize Arnaldo Carvalho de Melo
` (2 subsequent siblings)
8 siblings, 1 reply; 34+ 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, Kan Liang, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, He Kuang, Lukasz Odzioba,
Namhyung Kim, Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
The proc files which is sorted with alphabetical order are evenly
assigned to several synthesize threads to be processed in parallel.
For 'perf top', the threads number hard code to online CPU number. The
following patch will introduce an option to set it.
For other perf tools, the thread number is 1. Because the process
function is not ready for multithreading, e.g.
process_synthesized_event.
This patch series only support event synthesize multithreading for 'perf
top'. For other tools, it can be done separately later.
With multithread applied, the total processing time can get up to 1.56x
speedup on Knights Mill for 'perf top'.
For specific single event processing, the processing time could increase
because of the lock contention. So proc_map_timeout may need to be
increased. Otherwise some proc maps will be truncated.
Based on my test, increasing the proc_map_timeout has small impact
on the total processing time. The total processing time still get 1.49x
speedup on Knights Mill after increasing the proc_map_timeout.
The patch itself doesn't increase the proc_map_timeout.
Doesn't need to implement multithreading for per task monitoring,
perf_event__synthesize_thread_map. It doesn't have performance issue.
Committer testing:
# getconf _NPROCESSORS_ONLN
4
# perf trace --no-inherit -e clone -o /tmp/output perf top
# tail -4 /tmp/bla
0.124 ( 0.041 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7fc3eb3a8f30, parent_tidptr: 0x7fc3eb3a99d0, child_tidptr: 0x7fc3eb3a99d0, tls: 0x7fc3eb3a9700) = 9548 (perf)
0.246 ( 0.023 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7fc3eaba7f30, parent_tidptr: 0x7fc3eaba89d0, child_tidptr: 0x7fc3eaba89d0, tls: 0x7fc3eaba8700) = 9549 (perf)
0.286 ( 0.019 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7fc3ea3a6f30, parent_tidptr: 0x7fc3ea3a79d0, child_tidptr: 0x7fc3ea3a79d0, tls: 0x7fc3ea3a7700) = 9550 (perf)
246.540 ( 0.047 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7fc3ea3a6f30, parent_tidptr: 0x7fc3ea3a79d0, child_tidptr: 0x7fc3ea3a79d0, tls: 0x7fc3ea3a7700) = 9551 (perf)
#
Signed-off-by: Kan Liang <kan.liang@intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Lukasz Odzioba <lukasz.odzioba@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1506696477-146932-4-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-kvm.c | 3 +-
tools/perf/builtin-record.c | 2 +-
tools/perf/builtin-top.c | 8 +-
tools/perf/builtin-trace.c | 2 +-
tools/perf/tests/mmap-thread-lookup.c | 2 +-
tools/perf/util/event.c | 160 +++++++++++++++++++++++++++-------
tools/perf/util/event.h | 3 +-
tools/perf/util/machine.c | 8 +-
tools/perf/util/machine.h | 9 +-
9 files changed, 155 insertions(+), 42 deletions(-)
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index c747a1af49fe..721f4f91291a 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -1441,7 +1441,8 @@ static int kvm_events_live(struct perf_kvm_stat *kvm,
perf_session__set_id_hdr_size(kvm->session);
ordered_events__set_copy_on_queue(&kvm->session->ordered_events, true);
machine__synthesize_threads(&kvm->session->machines.host, &kvm->opts.target,
- kvm->evlist->threads, false, kvm->opts.proc_map_timeout);
+ kvm->evlist->threads, false,
+ kvm->opts.proc_map_timeout, 1);
err = kvm_live_open_events(kvm);
if (err)
goto out;
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 9b379f3a3d99..234fdf4734f6 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -863,7 +863,7 @@ static int record__synthesize(struct record *rec, bool tail)
err = __machine__synthesize_threads(machine, tool, &opts->target, rec->evlist->threads,
process_synthesized_event, opts->sample_address,
- opts->proc_map_timeout);
+ opts->proc_map_timeout, 1);
out:
return err;
}
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index ee954bde7e3e..bc31b93cc1d8 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -958,8 +958,14 @@ static int __cmd_top(struct perf_top *top)
if (perf_session__register_idle_thread(top->session) < 0)
goto out_delete;
+ perf_set_multithreaded();
+
machine__synthesize_threads(&top->session->machines.host, &opts->target,
- top->evlist->threads, false, opts->proc_map_timeout);
+ top->evlist->threads, false,
+ opts->proc_map_timeout,
+ (unsigned int)sysconf(_SC_NPROCESSORS_ONLN));
+
+ perf_set_singlethreaded();
if (perf_hpp_list.socket) {
ret = perf_env__read_cpu_topology_map(&perf_env);
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 967bd351b58d..afef6fe46c45 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1131,7 +1131,7 @@ static int trace__symbols_init(struct trace *trace, struct perf_evlist *evlist)
err = __machine__synthesize_threads(trace->host, &trace->tool, &trace->opts.target,
evlist->threads, trace__tool_process, false,
- trace->opts.proc_map_timeout);
+ trace->opts.proc_map_timeout, 1);
if (err)
symbol__exit();
diff --git a/tools/perf/tests/mmap-thread-lookup.c b/tools/perf/tests/mmap-thread-lookup.c
index f94a4196e7c9..2a0068afe3bf 100644
--- a/tools/perf/tests/mmap-thread-lookup.c
+++ b/tools/perf/tests/mmap-thread-lookup.c
@@ -131,7 +131,7 @@ static int synth_all(struct machine *machine)
{
return perf_event__synthesize_threads(NULL,
perf_event__process,
- machine, 0, 500);
+ machine, 0, 500, 1);
}
static int synth_process(struct machine *machine)
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 10366b87d0b5..0e678dd6bdbe 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -678,23 +678,21 @@ int perf_event__synthesize_thread_map(struct perf_tool *tool,
return err;
}
-int perf_event__synthesize_threads(struct perf_tool *tool,
- perf_event__handler_t process,
- struct machine *machine,
- bool mmap_data,
- unsigned int proc_map_timeout)
+static int __perf_event__synthesize_threads(struct perf_tool *tool,
+ perf_event__handler_t process,
+ struct machine *machine,
+ bool mmap_data,
+ unsigned int proc_map_timeout,
+ struct dirent **dirent,
+ int start,
+ int num)
{
union perf_event *comm_event, *mmap_event, *fork_event;
union perf_event *namespaces_event;
- char proc_path[PATH_MAX];
- struct dirent **dirent;
int err = -1;
char *end;
pid_t pid;
- int n, i;
-
- if (machine__is_default_guest(machine))
- return 0;
+ int i;
comm_event = malloc(sizeof(comm_event->comm) + machine->id_hdr_size);
if (comm_event == NULL)
@@ -714,34 +712,25 @@ int perf_event__synthesize_threads(struct perf_tool *tool,
if (namespaces_event == NULL)
goto out_free_fork;
- snprintf(proc_path, sizeof(proc_path), "%s/proc", machine->root_dir);
- n = scandir(proc_path, &dirent, 0, alphasort);
-
- if (n < 0)
- goto out_free_namespaces;
-
- for (i = 0; i < n; i++) {
+ for (i = start; i < start + num; i++) {
if (!isdigit(dirent[i]->d_name[0]))
continue;
pid = (pid_t)strtol(dirent[i]->d_name, &end, 10);
/* only interested in proper numerical dirents */
- if (!*end) {
- /*
- * We may race with exiting thread, so don't stop just because
- * one thread couldn't be synthesized.
- */
- __event__synthesize_thread(comm_event, mmap_event, fork_event,
- namespaces_event, pid, 1, process,
- tool, machine, mmap_data,
- proc_map_timeout);
- }
- free(dirent[i]);
+ if (*end)
+ continue;
+ /*
+ * We may race with exiting thread, so don't stop just because
+ * one thread couldn't be synthesized.
+ */
+ __event__synthesize_thread(comm_event, mmap_event, fork_event,
+ namespaces_event, pid, 1, process,
+ tool, machine, mmap_data,
+ proc_map_timeout);
}
- free(dirent);
err = 0;
-out_free_namespaces:
free(namespaces_event);
out_free_fork:
free(fork_event);
@@ -753,6 +742,115 @@ int perf_event__synthesize_threads(struct perf_tool *tool,
return err;
}
+struct synthesize_threads_arg {
+ struct perf_tool *tool;
+ perf_event__handler_t process;
+ struct machine *machine;
+ bool mmap_data;
+ unsigned int proc_map_timeout;
+ struct dirent **dirent;
+ int num;
+ int start;
+};
+
+static void *synthesize_threads_worker(void *arg)
+{
+ struct synthesize_threads_arg *args = arg;
+
+ __perf_event__synthesize_threads(args->tool, args->process,
+ args->machine, args->mmap_data,
+ args->proc_map_timeout, args->dirent,
+ args->start, args->num);
+ return NULL;
+}
+
+int perf_event__synthesize_threads(struct perf_tool *tool,
+ perf_event__handler_t process,
+ struct machine *machine,
+ bool mmap_data,
+ unsigned int proc_map_timeout,
+ unsigned int nr_threads_synthesize)
+{
+ struct synthesize_threads_arg *args = NULL;
+ pthread_t *synthesize_threads = NULL;
+ char proc_path[PATH_MAX];
+ struct dirent **dirent;
+ int num_per_thread;
+ int m, n, i, j;
+ int thread_nr;
+ int base = 0;
+ int err = -1;
+
+
+ if (machine__is_default_guest(machine))
+ return 0;
+
+ snprintf(proc_path, sizeof(proc_path), "%s/proc", machine->root_dir);
+ n = scandir(proc_path, &dirent, 0, alphasort);
+ if (n < 0)
+ return err;
+
+ thread_nr = nr_threads_synthesize;
+
+ if (thread_nr <= 1) {
+ err = __perf_event__synthesize_threads(tool, process,
+ machine, mmap_data,
+ proc_map_timeout,
+ dirent, base, n);
+ goto free_dirent;
+ }
+ if (thread_nr > n)
+ thread_nr = n;
+
+ synthesize_threads = calloc(sizeof(pthread_t), thread_nr);
+ if (synthesize_threads == NULL)
+ goto free_dirent;
+
+ args = calloc(sizeof(*args), thread_nr);
+ if (args == NULL)
+ goto free_threads;
+
+ num_per_thread = n / thread_nr;
+ m = n % thread_nr;
+ for (i = 0; i < thread_nr; i++) {
+ args[i].tool = tool;
+ args[i].process = process;
+ args[i].machine = machine;
+ args[i].mmap_data = mmap_data;
+ args[i].proc_map_timeout = proc_map_timeout;
+ args[i].dirent = dirent;
+ }
+ for (i = 0; i < m; i++) {
+ args[i].num = num_per_thread + 1;
+ args[i].start = i * args[i].num;
+ }
+ if (i != 0)
+ base = args[i-1].start + args[i-1].num;
+ for (j = i; j < thread_nr; j++) {
+ args[j].num = num_per_thread;
+ args[j].start = base + (j - i) * args[i].num;
+ }
+
+ for (i = 0; i < thread_nr; i++) {
+ if (pthread_create(&synthesize_threads[i], NULL,
+ synthesize_threads_worker, &args[i]))
+ goto out_join;
+ }
+ err = 0;
+out_join:
+ for (i = 0; i < thread_nr; i++)
+ pthread_join(synthesize_threads[i], NULL);
+ free(args);
+free_threads:
+ free(synthesize_threads);
+free_dirent:
+ for (i = 0; i < n; i++)
+ free(dirent[i]);
+ free(dirent);
+
+ return err;
+}
+
struct process_symbol_args {
const char *name;
u64 start;
diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
index ee7bcc898d35..d6cbb0a0d919 100644
--- a/tools/perf/util/event.h
+++ b/tools/perf/util/event.h
@@ -680,7 +680,8 @@ int perf_event__synthesize_cpu_map(struct perf_tool *tool,
int perf_event__synthesize_threads(struct perf_tool *tool,
perf_event__handler_t process,
struct machine *machine, bool mmap_data,
- unsigned int proc_map_timeout);
+ unsigned int proc_map_timeout,
+ unsigned int nr_threads_synthesize);
int perf_event__synthesize_kernel_mmap(struct perf_tool *tool,
perf_event__handler_t process,
struct machine *machine);
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 585b4a3d64a4..7c3aa479201a 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -2218,12 +2218,16 @@ int machines__for_each_thread(struct machines *machines,
int __machine__synthesize_threads(struct machine *machine, struct perf_tool *tool,
struct target *target, struct thread_map *threads,
perf_event__handler_t process, bool data_mmap,
- unsigned int proc_map_timeout)
+ unsigned int proc_map_timeout,
+ unsigned int nr_threads_synthesize)
{
if (target__has_task(target))
return perf_event__synthesize_thread_map(tool, threads, process, machine, data_mmap, proc_map_timeout);
else if (target__has_cpu(target))
- return perf_event__synthesize_threads(tool, process, machine, data_mmap, proc_map_timeout);
+ return perf_event__synthesize_threads(tool, process,
+ machine, data_mmap,
+ proc_map_timeout,
+ nr_threads_synthesize);
/* command specified */
return 0;
}
diff --git a/tools/perf/util/machine.h b/tools/perf/util/machine.h
index b1cd516f2025..c6a299ea506c 100644
--- a/tools/perf/util/machine.h
+++ b/tools/perf/util/machine.h
@@ -257,15 +257,18 @@ int machines__for_each_thread(struct machines *machines,
int __machine__synthesize_threads(struct machine *machine, struct perf_tool *tool,
struct target *target, struct thread_map *threads,
perf_event__handler_t process, bool data_mmap,
- unsigned int proc_map_timeout);
+ unsigned int proc_map_timeout,
+ unsigned int nr_threads_synthesize);
static inline
int machine__synthesize_threads(struct machine *machine, struct target *target,
struct thread_map *threads, bool data_mmap,
- unsigned int proc_map_timeout)
+ unsigned int proc_map_timeout,
+ unsigned int nr_threads_synthesize)
{
return __machine__synthesize_threads(machine, NULL, target, threads,
perf_event__process, data_mmap,
- proc_map_timeout);
+ proc_map_timeout,
+ nr_threads_synthesize);
}
pid_t machine__get_current_tid(struct machine *machine, int cpu);
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [PATCH 6/8] perf top: Implement multithreading for perf_event__synthesize_threads
2017-10-03 12:55 ` [PATCH 6/8] perf top: Implement multithreading for perf_event__synthesize_threads Arnaldo Carvalho de Melo
@ 2017-10-03 17:37 ` Ingo Molnar
0 siblings, 0 replies; 34+ messages in thread
From: Ingo Molnar @ 2017-10-03 17:37 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Kan Liang, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, He Kuang, Lukasz Odzioba,
Namhyung Kim, Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> From: Kan Liang <kan.liang@intel.com>
>
> The proc files which is sorted with alphabetical order are evenly
> assigned to several synthesize threads to be processed in parallel.
>
> For 'perf top', the threads number hard code to online CPU number. The
> following patch will introduce an option to set it.
>
> For other perf tools, the thread number is 1. Because the process
> function is not ready for multithreading, e.g.
> process_synthesized_event.
>
> This patch series only support event synthesize multithreading for 'perf
> top'. For other tools, it can be done separately later.
Just to give some quick feedback: this is really nice stuff!
Is anyone working on multi-threading 'perf record' (and the recording portion of
'perf top' perhaps)?
Especially with complex, high-frequency profiling there's alot of SMP overhead
coming from a single recording thread. If there was a single thread per CPU, and
it truly only recorded the events from its own CPU, things would become a lot more
scalable.
For example, if we measure the current overhead of perf record of a (limited)
parallel kernel build:
triton:~/tip> perf stat --no-inherit --pre "make clean >/dev/null 2>&1" perf record -F 10000 make -j kernel
...
[ perf record: Captured and wrote 5.124 MB perf.data (108400 samples) ]
Performance counter stats for 'perf record -F 10000 make -j kernel':
183.582587 task-clock (msec) # 0.039 CPUs utilized
2,496 context-switches # 0.014 M/sec
157 cpu-migrations # 0.855 K/sec
6,649 page-faults # 0.036 M/sec
817,478,151 cycles # 4.453 GHz
416,641,913 stalled-cycles-frontend # 50.97% frontend cycles idle
1,018,336,301 instructions # 1.25 insn per cycle
# 0.41 stalled cycles per insn
217,255,137 branches # 1183.419 M/sec
2,970,118 branch-misses # 1.37% of all branches
4.710378510 seconds time elapsed
That's 1018336301 just to record 108400 samples, i.e. every sample takes 9,300
instructions to _record_. That's insanely high overhead from what is in essence a
tracing utility.
Even if I add "-B -N" to disable buildid generation (which is the worst offender),
it's still very high overhead:
[ perf record: Captured and wrote 5.585 MB perf.data ]
Performance counter stats for 'perf record -B -N -F 10000 make -j kernel':
45.625321 task-clock (msec) # 0.009 CPUs utilized
2,950 context-switches # 0.065 M/sec
204 cpu-migrations # 0.004 M/sec
1,992 page-faults # 0.044 M/sec
193,127,853 cycles # 4.233 GHz
117,098,418 stalled-cycles-frontend # 60.63% frontend cycles idle
197,899,633 instructions # 1.02 insn per cycle
# 0.59 stalled cycles per insn
41,221,863 branches # 903.487 M/sec
502,158 branch-misses # 1.22% of all branches
4.858962925 seconds time elapsed
... that's still 1,800+ instructions per event!
As a comparison, ftrace has a tracing overhead of less than 100 instructions per
event.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 7/8] perf top: Add option to set the number of thread for event synthesize
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2017-10-03 12:55 ` [PATCH 6/8] perf top: Implement multithreading for perf_event__synthesize_threads Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 8/8] perf tests attr: Fix group stat tests Arnaldo Carvalho de Melo
2017-10-03 16:38 ` [GIT PULL 0/8] perf/core improvements and fixes Ingo Molnar
8 siblings, 0 replies; 34+ 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, Kan Liang, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, He Kuang, Lukasz Odzioba,
Namhyung Kim, Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo
From: Kan Liang <kan.liang@intel.com>
Using UINT_MAX to indicate the default thread#, which is the max number
of online CPU.
Committer testing:
# perf trace --no-inherit -e clone -o /tmp/output perf top --num-thread-synthesize 9
# cat /tmp/output
? ( ? ): ... [continued]: clone()) = 26651 (perf)
0.059 ( 0.010 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5bfac44f30, parent_tidptr: 0x7f5bfac459d0, child_tidptr: 0x7f5bfac459d0, tls: 0x7f5bfac45700) = 26652 (perf)
0.116 ( 0.014 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5bfa443f30, parent_tidptr: 0x7f5bfa4449d0, child_tidptr: 0x7f5bfa4449d0, tls: 0x7f5bfa444700) = 26653 (perf)
0.141 ( 0.009 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5bf9c42f30, parent_tidptr: 0x7f5bf9c439d0, child_tidptr: 0x7f5bf9c439d0, tls: 0x7f5bf9c43700) = 26654 (perf)
0.160 ( 0.012 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5bf9441f30, parent_tidptr: 0x7f5bf94429d0, child_tidptr: 0x7f5bf94429d0, tls: 0x7f5bf9442700) = 26655 (perf)
0.232 ( 0.013 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5bf8c40f30, parent_tidptr: 0x7f5bf8c419d0, child_tidptr: 0x7f5bf8c419d0, tls: 0x7f5bf8c41700) = 26656 (perf)
0.393 ( 0.011 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5be3ffef30, parent_tidptr: 0x7f5be3fff9d0, child_tidptr: 0x7f5be3fff9d0, tls: 0x7f5be3fff700) = 26657 (perf)
0.802 ( 0.012 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5be37fdf30, parent_tidptr: 0x7f5be37fe9d0, child_tidptr: 0x7f5be37fe9d0, tls: 0x7f5be37fe700) = 26658 (perf)
1.411 ( 0.022 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5be2ffcf30, parent_tidptr: 0x7f5be2ffd9d0, child_tidptr: 0x7f5be2ffd9d0, tls: 0x7f5be2ffd700) = 26659 (perf)
246.422 ( 0.042 ms): clone(flags: VM|FS|FILES|SIGHAND|THREAD|SYSVSEM|SETTLS|PARENT_SETTID|CHILD_CLEARTID, child_stack: 0x7f5be2ffcf30, parent_tidptr: 0x7f5be2ffd9d0, child_tidptr: 0x7f5be2ffd9d0, tls: 0x7f5be2ffd700) = 26660 (perf)
#
Signed-off-by: Kan Liang <kan.liang@intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Lukasz Odzioba <lukasz.odzioba@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1506696477-146932-5-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-top.txt | 3 +++
tools/perf/builtin-top.c | 11 ++++++++---
tools/perf/util/event.c | 5 ++++-
tools/perf/util/top.h | 1 +
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/tools/perf/Documentation/perf-top.txt b/tools/perf/Documentation/perf-top.txt
index d864ea6fd367..4353262bc462 100644
--- a/tools/perf/Documentation/perf-top.txt
+++ b/tools/perf/Documentation/perf-top.txt
@@ -240,6 +240,9 @@ Default is to monitor all CPUS.
--force::
Don't do ownership validation.
+--num-thread-synthesize::
+ The number of threads to run when synthesizing events for existing processes.
+ By default, the number of threads equals to the number of online CPUs.
INTERACTIVE PROMPTING KEYS
--------------------------
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index bc31b93cc1d8..477a8699f0b5 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -958,14 +958,16 @@ static int __cmd_top(struct perf_top *top)
if (perf_session__register_idle_thread(top->session) < 0)
goto out_delete;
- perf_set_multithreaded();
+ if (top->nr_threads_synthesize > 1)
+ perf_set_multithreaded();
machine__synthesize_threads(&top->session->machines.host, &opts->target,
top->evlist->threads, false,
opts->proc_map_timeout,
- (unsigned int)sysconf(_SC_NPROCESSORS_ONLN));
+ top->nr_threads_synthesize);
- perf_set_singlethreaded();
+ if (top->nr_threads_synthesize > 1)
+ perf_set_singlethreaded();
if (perf_hpp_list.socket) {
ret = perf_env__read_cpu_topology_map(&perf_env);
@@ -1118,6 +1120,7 @@ int cmd_top(int argc, const char **argv)
},
.max_stack = sysctl_perf_event_max_stack,
.sym_pcnt_filter = 5,
+ .nr_threads_synthesize = UINT_MAX,
};
struct record_opts *opts = &top.record_opts;
struct target *target = &opts->target;
@@ -1227,6 +1230,8 @@ int cmd_top(int argc, const char **argv)
OPT_BOOLEAN(0, "hierarchy", &symbol_conf.report_hierarchy,
"Show entries in a hierarchy"),
OPT_BOOLEAN(0, "force", &symbol_conf.force, "don't complain, do it"),
+ OPT_UINTEGER(0, "num-thread-synthesize", &top.nr_threads_synthesize,
+ "number of thread to run event synthesize"),
OPT_END()
};
const char * const top_usage[] = {
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 0e678dd6bdbe..47eff4767edb 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -790,7 +790,10 @@ int perf_event__synthesize_threads(struct perf_tool *tool,
if (n < 0)
return err;
- thread_nr = nr_threads_synthesize;
+ if (nr_threads_synthesize == UINT_MAX)
+ thread_nr = sysconf(_SC_NPROCESSORS_ONLN);
+ else
+ thread_nr = nr_threads_synthesize;
if (thread_nr <= 1) {
err = __perf_event__synthesize_threads(tool, process,
diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h
index 9bdfb78a9a35..f4296e1e3bb8 100644
--- a/tools/perf/util/top.h
+++ b/tools/perf/util/top.h
@@ -37,6 +37,7 @@ struct perf_top {
int sym_pcnt_filter;
const char *sym_filter;
float min_percent;
+ unsigned int nr_threads_synthesize;
};
#define CONSOLE_CLEAR "^[[H^[[2J"
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 8/8] perf tests attr: Fix group stat tests
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2017-10-03 12:55 ` [PATCH 7/8] perf top: Add option to set the number of thread for event synthesize Arnaldo Carvalho de Melo
@ 2017-10-03 12:55 ` Arnaldo Carvalho de Melo
2017-10-03 16:38 ` [GIT PULL 0/8] perf/core improvements and fixes Ingo Molnar
8 siblings, 0 replies; 34+ 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, Jiri Olsa, Jiri Olsa,
Heiko Carstens, Hendrik Brueckner, Martin Schwidefsky,
Thomas-Mich Richter, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@redhat.com>
We started to use group read whenever it's possible:
82bf311e15d2 perf stat: Use group read for event groups
That breaks some of attr tests, this change adds the new possible
read_format value.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
LPU-Reference: 20170928160633.GA26973@krava
Link: http://lkml.kernel.org/n/tip-1ko2zc4nph93d8lfwjyk9ivz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/attr/test-stat-group | 2 ++
tools/perf/tests/attr/test-stat-group1 | 2 ++
2 files changed, 4 insertions(+)
diff --git a/tools/perf/tests/attr/test-stat-group b/tools/perf/tests/attr/test-stat-group
index fdc1596a8862..e15d6946e9b3 100644
--- a/tools/perf/tests/attr/test-stat-group
+++ b/tools/perf/tests/attr/test-stat-group
@@ -6,6 +6,7 @@ ret = 1
[event-1:base-stat]
fd=1
group_fd=-1
+read_format=3|15
[event-2:base-stat]
fd=2
@@ -13,3 +14,4 @@ group_fd=1
config=1
disabled=0
enable_on_exec=0
+read_format=3|15
diff --git a/tools/perf/tests/attr/test-stat-group1 b/tools/perf/tests/attr/test-stat-group1
index 2a1f86e4a904..1746751123dc 100644
--- a/tools/perf/tests/attr/test-stat-group1
+++ b/tools/perf/tests/attr/test-stat-group1
@@ -6,6 +6,7 @@ ret = 1
[event-1:base-stat]
fd=1
group_fd=-1
+read_format=3|15
[event-2:base-stat]
fd=2
@@ -13,3 +14,4 @@ group_fd=1
config=1
disabled=0
enable_on_exec=0
+read_format=3|15
--
2.13.6
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [GIT PULL 0/8] perf/core improvements and fixes
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2017-10-03 12:55 ` [PATCH 8/8] perf tests attr: Fix group stat tests Arnaldo Carvalho de Melo
@ 2017-10-03 16:38 ` Ingo Molnar
8 siblings, 0 replies; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2015-10-29 23:05 Arnaldo Carvalho de Melo
2015-10-30 9:10 ` Ingo Molnar
0 siblings, 1 reply; 34+ 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] 34+ messages in thread
* Re: [GIT PULL 0/8] perf/core improvements and fixes
2015-10-29 23:05 Arnaldo Carvalho de Melo
@ 2015-10-30 9:10 ` Ingo Molnar
0 siblings, 0 replies; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2014-10-01 19:50 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 34+ 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] 34+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2014-10-01 19:50 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 34+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-10-01 19:50 UTC (permalink / raw)
To: linux-arm-kernel
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] 34+ 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
-1 siblings, 0 replies; 34+ 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] 34+ messages in thread
* [GIT PULL 0/8] perf/core improvements and fixes
@ 2014-10-03 3:31 ` Ingo Molnar
0 siblings, 0 replies; 34+ messages in thread
From: Ingo Molnar @ 2014-10-03 3:31 UTC (permalink / raw)
To: linux-arm-kernel
* 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ 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; 34+ 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] 34+ messages in thread
end of thread, other threads:[~2018-03-29 7:23 UTC | newest]
Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-03 12:55 [GIT PULL 0/8] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 1/8] perf tests attr: Fix task term values Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 2/8] perf test attr: Fix python error on empty result Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 3/8] perf test attr: Fix ignored test case result Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 4/8] perf tools: Lock to protect namespaces and comm list Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 5/8] perf tools: Lock to protect comm_str rb tree Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 6/8] perf top: Implement multithreading for perf_event__synthesize_threads Arnaldo Carvalho de Melo
2017-10-03 17:37 ` Ingo Molnar
2017-10-03 12:55 ` [PATCH 7/8] perf top: Add option to set the number of thread for event synthesize Arnaldo Carvalho de Melo
2017-10-03 12:55 ` [PATCH 8/8] perf tests attr: Fix group stat tests Arnaldo Carvalho de Melo
2017-10-03 16:38 ` [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
2016-01-15 21:40 Arnaldo Carvalho de Melo
2016-01-19 7:32 ` Ingo Molnar
2015-10-29 23:05 Arnaldo Carvalho de Melo
2015-10-30 9:10 ` 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-01 19:50 ` Arnaldo Carvalho de Melo
2014-10-03 3:31 ` Ingo Molnar
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.