diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-02-13 15:32:45 (GMT) |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-02-13 15:43:00 (GMT) |
commit | 42052bea1683fad5a7a06d84a3b4f7bd16131ce8 (patch) | |
tree | 5ffd592190373cf1d2625f84ef0f4496c469ade8 | |
parent | 619a303c1b8bd22abc549477d038ef9b5c1fe1bd (diff) | |
download | linux-42052bea1683fad5a7a06d84a3b4f7bd16131ce8.tar.xz |
perf trace: Print thread info when following children
The default for 'trace workload' is to set perf_event_attr.inherit to 1,
i.e. to make it equivalent to 'strace -f workload', so we were ending
with syscalls for multiple processes mixed up, fix it:
Before:
[root@ssdandy ~]# trace -e brk time usleep 1
0.071 ( 0.002 ms): brk( ) = 0x100e000
0.802 ( 0.001 ms): brk( ) = 0x1d99000
1.132 ( 0.003 ms): brk( ) = 0x1d99000
1.136 ( 0.003 ms): brk(brk: 0x1dba000) = 0x1dba000
1.140 ( 0.001 ms): brk( ) = 0x1dba000
0.00user 0.00system 0:00.00elapsed 63%CPU (0avgtext+0avgdata 528maxresident)k
0inputs+0outputs (0major+181minor)pagefaults 0swaps
[root@ssdandy ~]#
After:
[root@ssdandy ~]# trace -f -e brk time usleep 1
0.072 ( 0.002 ms): time/26308 brk( ) = 0x1e6e000
0.860 ( 0.001 ms): usleep/26309 brk( ) = 0xb91000
1.193 ( 0.003 ms): usleep/26309 brk( ) = 0xb91000
1.197 ( 0.003 ms): usleep/26309 brk(brk: 0xbb2000) = 0xbb2000
1.201 ( 0.001 ms): usleep/26309 brk( ) = 0xbb2000
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 524maxresident)k
0inputs+0outputs (0major+180minor)pagefaults 0swaps
[root@ssdandy ~]#
BTW: to achieve the 'strace workload' behaviour, i.e. without a explicit
'-f', one has to use --no-inherit.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
echo Link: http://lkml.kernel.org/n/tip-`ranpwd -l 24`@git.kernel.org
Link: http://lkml.kernel.org/n/tip-2wu2d5n65msxoq1i7vtcaft2@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/builtin-trace.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 66300ae..2bfb234 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c @@ -2114,7 +2114,9 @@ static int trace__run(struct trace *trace, int argc, const char **argv) else perf_evlist__enable(evlist); - trace->multiple_threads = evlist->threads->map[0] == -1 || evlist->threads->nr > 1; + trace->multiple_threads = evlist->threads->map[0] == -1 || + evlist->threads->nr > 1 || + perf_evlist__first(evlist)->attr.inherit; again: before = trace->nr_events; |