Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1646851 > unrolled thread
| Started by | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| First post | 2017-05-22 15:00 +0200 |
| Last post | 2017-05-23 09:40 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] perf tools: Fix to put caller above callee in children mode Namhyung Kim <namhyung@kernel.org> - 2017-05-22 15:00 +0200
Re: [PATCH] perf tools: Fix to put caller above callee in children mode Jiri Olsa <jolsa@redhat.com> - 2017-05-23 09:40 +0200
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Date | 2017-05-22 15:00 +0200 |
| Subject | [PATCH] perf tools: Fix to put caller above callee in children mode |
| Message-ID | <tJV6i-5Qr-7@gated-at.bofh.it> |
The __hpp__sort_acc() sorts entries using callchain depth in order to
put callers above in children mode. But it assumed the callchain order
was callee-first. Now default (for children) is caller-first so the
order of entries is reverted.
For example, consider following case.
$ perf report --no-children
..l
# Overhead Command Shared Object Symbol
# ........ ....... ................... ..........................
#
99.44% a.out a.out [.] main
|
---main
__libc_start_main
_start
Then children mode should show 'start' above '__libc_start_main' since
it's the caller (parent) of the __libc_start_main. But it's reversed:
# Children Self Command Shared Object Symbol
# ........ ........ ....... ............... .....................
#
99.61% 0.00% a.out libc-2.25.so [.] __libc_start_main
99.61% 0.00% a.out a.out [.] _start
99.54% 99.44% a.out a.out [.] main
This patch fixes it.
# Children Self Command Shared Object Symbol
# ........ ........ ....... ............... .....................
#
99.61% 0.00% a.out a.out [.] _start
99.61% 0.00% a.out libc-2.25.so [.] __libc_start_main
99.54% 99.44% a.out a.out [.] main
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Milian Wolff <milian.wolff@kdab.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/ui/hist.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c
index 59addd52d9cd..ddb2c6fbdf91 100644
--- a/tools/perf/ui/hist.c
+++ b/tools/perf/ui/hist.c
@@ -210,6 +210,8 @@ static int __hpp__sort_acc(struct hist_entry *a, struct hist_entry *b,
return 0;
ret = b->callchain->max_depth - a->callchain->max_depth;
+ if (callchain_param.order == ORDER_CALLER)
+ ret = -ret;
}
return ret;
}
--
2.13.0
[toc] | [next] | [standalone]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2017-05-23 09:40 +0200 |
| Subject | Re: [PATCH] perf tools: Fix to put caller above callee in children mode |
| Message-ID | <tKcA9-8tW-11@gated-at.bofh.it> |
| In reply to | #1646851 |
On Mon, May 22, 2017 at 09:50:29PM +0900, Namhyung Kim wrote: > The __hpp__sort_acc() sorts entries using callchain depth in order to > put callers above in children mode. But it assumed the callchain order > was callee-first. Now default (for children) is caller-first so the > order of entries is reverted. > > For example, consider following case. > > $ perf report --no-children > ..l > # Overhead Command Shared Object Symbol > # ........ ....... ................... .......................... > # > 99.44% a.out a.out [.] main > | > ---main > __libc_start_main > _start > > Then children mode should show 'start' above '__libc_start_main' since > it's the caller (parent) of the __libc_start_main. But it's reversed: > > # Children Self Command Shared Object Symbol > # ........ ........ ....... ............... ..................... > # > 99.61% 0.00% a.out libc-2.25.so [.] __libc_start_main > 99.61% 0.00% a.out a.out [.] _start > 99.54% 99.44% a.out a.out [.] main > > This patch fixes it. > > # Children Self Command Shared Object Symbol > # ........ ........ ....... ............... ..................... > # > 99.61% 0.00% a.out a.out [.] _start > 99.61% 0.00% a.out libc-2.25.so [.] __libc_start_main > 99.54% 99.44% a.out a.out [.] main > > Cc: Frederic Weisbecker <fweisbec@gmail.com> > Cc: Milian Wolff <milian.wolff@kdab.com> > Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Jiri Olsa <jolsa@kernel.org> thanks, jirka
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web