* [PATCH] perf ui/tui: Fix a small callchain display bug
@ 2014-08-13 6:02 Namhyung Kim
2014-08-13 8:19 ` Ingo Molnar
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Namhyung Kim @ 2014-08-13 6:02 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim,
Namhyung Kim, LKML, Jiri Olsa, Andi Kleen, Frederic Weisbecker
The currently when perf TUI report shows callchain, the first level
chains have bogus '+' sign even though only the last one has children.
Since they are on a single line of the chain, toggling intermediate
entries has no effect. Fix it to show '+' sign at the last entry
only. Note that non-first level callchain entries don't have this
problem.
Before:
Children Self Command Shared Object Symbols
---------------------------------------------------------------------------
- 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
+ cpuidle_wrap_enter
+ cpuidle_enter_tk
+ cpuidle_idle_call
+ cpu_idle
After:
Children Self Command Shared Object Symbols
---------------------------------------------------------------------------
- 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
cpuidle_wrap_enter
cpuidle_enter_tk
cpuidle_idle_call
+ cpu_idle
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/ui/browsers/hists.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 045c1e16ac59..1818d1275d02 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -228,8 +228,10 @@ static void callchain_node__init_have_children(struct callchain_node *node)
{
struct callchain_list *chain;
- list_for_each_entry(chain, &node->val, list)
+ if (!list_empty(&node->val)) {
+ chain = list_entry(node->val.prev, struct callchain_list, list);
chain->ms.has_children = !RB_EMPTY_ROOT(&node->rb_root);
+ }
callchain_node__init_have_children_rb_tree(node);
}
--
2.0.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] perf ui/tui: Fix a small callchain display bug
2014-08-13 6:02 [PATCH] perf ui/tui: Fix a small callchain display bug Namhyung Kim
@ 2014-08-13 8:19 ` Ingo Molnar
2014-08-13 20:12 ` Arnaldo Carvalho de Melo
2014-08-13 20:06 ` Arnaldo Carvalho de Melo
2014-08-14 8:48 ` [tip:perf/core] perf hists browser: " tip-bot for Namhyung Kim
2 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2014-08-13 8:19 UTC (permalink / raw)
To: Namhyung Kim
Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras,
Namhyung Kim, LKML, Jiri Olsa, Andi Kleen, Frederic Weisbecker
* Namhyung Kim <namhyung@kernel.org> wrote:
> The currently when perf TUI report shows callchain, the first level
> chains have bogus '+' sign even though only the last one has children.
>
> Since they are on a single line of the chain, toggling intermediate
> entries has no effect. Fix it to show '+' sign at the last entry
> only. Note that non-first level callchain entries don't have this
> problem.
>
> Before:
>
> Children Self Command Shared Object Symbols
> ---------------------------------------------------------------------------
> - 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
> + cpuidle_wrap_enter
> + cpuidle_enter_tk
> + cpuidle_idle_call
> + cpu_idle
>
> After:
>
> Children Self Command Shared Object Symbols
> ---------------------------------------------------------------------------
> - 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
> cpuidle_wrap_enter
> cpuidle_enter_tk
> cpuidle_idle_call
> + cpu_idle
>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Nice fix!
Acked-by: Ingo Molnar <mingo@kernel.org>
Thanks,
Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf ui/tui: Fix a small callchain display bug
2014-08-13 8:19 ` Ingo Molnar
@ 2014-08-13 20:12 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-13 20:12 UTC (permalink / raw)
To: Ingo Molnar
Cc: Namhyung Kim, Peter Zijlstra, Paul Mackerras, Namhyung Kim, LKML,
Jiri Olsa, Andi Kleen, Frederic Weisbecker
Em Wed, Aug 13, 2014 at 10:19:09AM +0200, Ingo Molnar escreveu:
> * Namhyung Kim <namhyung@kernel.org> wrote:
> > Before:
> > Children Self Command Shared Object Symbols
> > ---------------------------------------------------------------------------
> > - 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
> > + cpuidle_wrap_enter
> > + cpuidle_enter_tk
> > + cpuidle_idle_call
> > + cpu_idle
> > After:
> > Children Self Command Shared Object Symbols
> > ---------------------------------------------------------------------------
> > - 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
> > cpuidle_wrap_enter
> > cpuidle_enter_tk
> > cpuidle_idle_call
> > + cpu_idle
> >
> > Cc: Frederic Weisbecker <fweisbec@gmail.com>
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
>
> Nice fix!
Indeed, longstanding problem, kudos to Namhyung for deving into TUI +
callchain land to fix this!
- Arnaldo
> Acked-by: Ingo Molnar <mingo@kernel.org>
>
> Thanks,
>
> Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf ui/tui: Fix a small callchain display bug
2014-08-13 6:02 [PATCH] perf ui/tui: Fix a small callchain display bug Namhyung Kim
2014-08-13 8:19 ` Ingo Molnar
@ 2014-08-13 20:06 ` Arnaldo Carvalho de Melo
2014-08-14 8:48 ` [tip:perf/core] perf hists browser: " tip-bot for Namhyung Kim
2 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-13 20:06 UTC (permalink / raw)
To: Namhyung Kim
Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim, LKML,
Jiri Olsa, Andi Kleen, Frederic Weisbecker
Em Wed, Aug 13, 2014 at 03:02:41PM +0900, Namhyung Kim escreveu:
> The currently when perf TUI report shows callchain, the first level
> chains have bogus '+' sign even though only the last one has children.
>
> Since they are on a single line of the chain, toggling intermediate
> entries has no effect. Fix it to show '+' sign at the last entry
> only. Note that non-first level callchain entries don't have this
> problem.
>
> Before:
>
> Children Self Command Shared Object Symbols
> ---------------------------------------------------------------------------
Please avoid starting a line with --- inside the changeset comment log as this
confuses scripts, that takes that as the end of the comment, like in ...
(see below)
> - 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
> + cpuidle_wrap_enter
> + cpuidle_enter_tk
> + cpuidle_idle_call
> + cpu_idle
>
> After:
>
> Children Self Command Shared Object Symbols
> ---------------------------------------------------------------------------
> - 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
> cpuidle_wrap_enter
> cpuidle_enter_tk
> cpuidle_idle_call
> + cpu_idle
>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
... here ^ ^ ^ ^ ^
:-)
Thanks for the fix, checking with 'P' after 'E' to expand everything,
before and after, to then do a:
diff -u perf.hist.0 perf.hist.1
- Arnaldo
> tools/perf/ui/browsers/hists.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> index 045c1e16ac59..1818d1275d02 100644
> --- a/tools/perf/ui/browsers/hists.c
> +++ b/tools/perf/ui/browsers/hists.c
> @@ -228,8 +228,10 @@ static void callchain_node__init_have_children(struct callchain_node *node)
> {
> struct callchain_list *chain;
>
> - list_for_each_entry(chain, &node->val, list)
> + if (!list_empty(&node->val)) {
> + chain = list_entry(node->val.prev, struct callchain_list, list);
> chain->ms.has_children = !RB_EMPTY_ROOT(&node->rb_root);
> + }
>
> callchain_node__init_have_children_rb_tree(node);
> }
> --
> 2.0.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:perf/core] perf hists browser: Fix a small callchain display bug
2014-08-13 6:02 [PATCH] perf ui/tui: Fix a small callchain display bug Namhyung Kim
2014-08-13 8:19 ` Ingo Molnar
2014-08-13 20:06 ` Arnaldo Carvalho de Melo
@ 2014-08-14 8:48 ` tip-bot for Namhyung Kim
2 siblings, 0 replies; 5+ messages in thread
From: tip-bot for Namhyung Kim @ 2014-08-14 8:48 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, paulus, hpa, mingo, andi, a.p.zijlstra,
namhyung.kim, namhyung, jolsa, fweisbec, tglx
Commit-ID: 82162b5ae3d152fd7d887b36213f5b6785fe1294
Gitweb: http://git.kernel.org/tip/82162b5ae3d152fd7d887b36213f5b6785fe1294
Author: Namhyung Kim <namhyung@kernel.org>
AuthorDate: Wed, 13 Aug 2014 15:02:41 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 13 Aug 2014 17:12:56 -0300
perf hists browser: Fix a small callchain display bug
The currently when perf TUI report shows callchain, the first level
chains have bogus '+' sign even though only the last one has children.
Since they are on a single line of the chain, toggling intermediate
entries has no effect. Fix it to show '+' sign at the last entry only.
Note that non-first level callchain entries don't have this problem.
Before:
---------------------------------------------------------------------------
Children Self Command Shared Object Symbols
- 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
+ cpuidle_wrap_enter
+ cpuidle_enter_tk
+ cpuidle_idle_call
+ cpu_idle
After:
---------------------------------------------------------------------------
Children Self Command Shared Object Symbols
- 40.70% 0.00% swapper [kernel.kallsyms] [k] cpuidle_wrap_enter
cpuidle_wrap_enter
cpuidle_enter_tk
cpuidle_idle_call
+ cpu_idle
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Link: http://lkml.kernel.org/r/1407909761-10822-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/browsers/hists.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 045c1e1..1818d12 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -228,8 +228,10 @@ static void callchain_node__init_have_children(struct callchain_node *node)
{
struct callchain_list *chain;
- list_for_each_entry(chain, &node->val, list)
+ if (!list_empty(&node->val)) {
+ chain = list_entry(node->val.prev, struct callchain_list, list);
chain->ms.has_children = !RB_EMPTY_ROOT(&node->rb_root);
+ }
callchain_node__init_have_children_rb_tree(node);
}
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-08-14 8:49 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-13 6:02 [PATCH] perf ui/tui: Fix a small callchain display bug Namhyung Kim
2014-08-13 8:19 ` Ingo Molnar
2014-08-13 20:12 ` Arnaldo Carvalho de Melo
2014-08-13 20:06 ` Arnaldo Carvalho de Melo
2014-08-14 8:48 ` [tip:perf/core] perf hists browser: " tip-bot for Namhyung Kim
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.