All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf report: Skip symbols for idle symbols
@ 2022-06-08  5:51 Rafał Miłecki
  2022-10-18 12:54 ` Rafał Miłecki
  0 siblings, 1 reply; 3+ messages in thread
From: Rafał Miłecki @ 2022-06-08  5:51 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	linux-perf-users, linux-kernel, Rafał Miłecki

From: Rafał Miłecki <rafal@milecki.pl>

Displaying idle symbols is rather useless and makes reviewing "real"
symbols harder. perf top already skips them so perf report should
probably do the same.

BEFORE

# Overhead  Command          Shared Object          Symbol                             
# ........  ...............  .....................  ...................................
#
    75.04%  swapper          [kernel.kallsyms]      [k] arch_cpu_idle
     1.05%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___inval_dcache_area
     0.78%  ksoftirqd/0      [kernel.kallsyms]      [k] __netif_receive_skb_core
     0.75%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_table_lookup
     0.58%  ksoftirqd/0      [kernel.kallsyms]      [k] __dev_queue_xmit
     0.56%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_start_xmit
     0.55%  ksoftirqd/0      [kernel.kallsyms]      [k] __skb_flow_dissect
     0.53%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___clean_dcache_area_poc

AFTER

# Overhead  Command          Shared Object          Symbol                             
# ........  ...............  .....................  ...................................
#
     4.21%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___inval_dcache_area
     3.13%  ksoftirqd/0      [kernel.kallsyms]      [k] __netif_receive_skb_core
     3.01%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_table_lookup
     2.32%  ksoftirqd/0      [kernel.kallsyms]      [k] __dev_queue_xmit
     2.23%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_start_xmit
     2.21%  ksoftirqd/0      [kernel.kallsyms]      [k] __skb_flow_dissect
     2.13%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___clean_dcache_area_poc
     2.00%  ksoftirqd/0      [kernel.kallsyms]      [k] eth_type_trans
     1.86%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_poll_rx
     1.73%  ksoftirqd/0      [kernel.kallsyms]      [k] __local_bh_enable_ip
     1.63%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_rules_lookup
     1.61%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_poll_tx
     (...)

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 tools/perf/builtin-report.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index afe4a5539ecc..7e31af009d44 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -316,9 +316,12 @@ static int process_sample_event(struct perf_tool *tool,
 				     &rep->total_cycles);
 	}
 
-	ret = hist_entry_iter__add(&iter, &al, rep->max_stack, rep);
-	if (ret < 0)
-		pr_debug("problem adding hist entry, skipping event\n");
+	if (al.sym == NULL || !al.sym->idle) {
+		ret = hist_entry_iter__add(&iter, &al, rep->max_stack, rep);
+		if (ret < 0)
+			pr_debug("problem adding hist entry, skipping event\n");
+	}
+
 out_put:
 	addr_location__put(&al);
 	return ret;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] perf report: Skip symbols for idle symbols
  2022-06-08  5:51 [PATCH] perf report: Skip symbols for idle symbols Rafał Miłecki
@ 2022-10-18 12:54 ` Rafał Miłecki
  2022-10-18 19:18   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Rafał Miłecki @ 2022-10-18 12:54 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	linux-perf-users, linux-kernel, Rafał Miłecki

On 8.06.2022 07:51, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Displaying idle symbols is rather useless and makes reviewing "real"
> symbols harder. perf top already skips them so perf report should
> probably do the same.
> 
> BEFORE
> 
> # Overhead  Command          Shared Object          Symbol
> # ........  ...............  .....................  ...................................
> #
>      75.04%  swapper          [kernel.kallsyms]      [k] arch_cpu_idle
>       1.05%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___inval_dcache_area
>       0.78%  ksoftirqd/0      [kernel.kallsyms]      [k] __netif_receive_skb_core
>       0.75%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_table_lookup
>       0.58%  ksoftirqd/0      [kernel.kallsyms]      [k] __dev_queue_xmit
>       0.56%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_start_xmit
>       0.55%  ksoftirqd/0      [kernel.kallsyms]      [k] __skb_flow_dissect
>       0.53%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___clean_dcache_area_poc
> 
> AFTER
> 
> # Overhead  Command          Shared Object          Symbol
> # ........  ...............  .....................  ...................................
> #
>       4.21%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___inval_dcache_area
>       3.13%  ksoftirqd/0      [kernel.kallsyms]      [k] __netif_receive_skb_core
>       3.01%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_table_lookup
>       2.32%  ksoftirqd/0      [kernel.kallsyms]      [k] __dev_queue_xmit
>       2.23%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_start_xmit
>       2.21%  ksoftirqd/0      [kernel.kallsyms]      [k] __skb_flow_dissect
>       2.13%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___clean_dcache_area_poc
>       2.00%  ksoftirqd/0      [kernel.kallsyms]      [k] eth_type_trans
>       1.86%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_poll_rx
>       1.73%  ksoftirqd/0      [kernel.kallsyms]      [k] __local_bh_enable_ip
>       1.63%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_rules_lookup
>       1.61%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_poll_tx
>       (...)
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>

Ping? Does it look OK to you?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] perf report: Skip symbols for idle symbols
  2022-10-18 12:54 ` Rafał Miłecki
@ 2022-10-18 19:18   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2022-10-18 19:18 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Peter Zijlstra, Ingo Molnar, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, linux-perf-users, linux-kernel,
	Rafał Miłecki

Em Tue, Oct 18, 2022 at 02:54:07PM +0200, Rafał Miłecki escreveu:
> On 8.06.2022 07:51, Rafał Miłecki wrote:
> > From: Rafał Miłecki <rafal@milecki.pl>
> > 
> > Displaying idle symbols is rather useless and makes reviewing "real"
> > symbols harder. perf top already skips them so perf report should
> > probably do the same.
> > 
> > BEFORE
> > 
> > # Overhead  Command          Shared Object          Symbol
> > # ........  ...............  .....................  ...................................
> > #
> >      75.04%  swapper          [kernel.kallsyms]      [k] arch_cpu_idle
> >       1.05%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___inval_dcache_area
> >       0.78%  ksoftirqd/0      [kernel.kallsyms]      [k] __netif_receive_skb_core
> >       0.75%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_table_lookup
> >       0.58%  ksoftirqd/0      [kernel.kallsyms]      [k] __dev_queue_xmit
> >       0.56%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_start_xmit
> >       0.55%  ksoftirqd/0      [kernel.kallsyms]      [k] __skb_flow_dissect
> >       0.53%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___clean_dcache_area_poc
> > 
> > AFTER
> > 
> > # Overhead  Command          Shared Object          Symbol
> > # ........  ...............  .....................  ...................................
> > #
> >       4.21%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___inval_dcache_area
> >       3.13%  ksoftirqd/0      [kernel.kallsyms]      [k] __netif_receive_skb_core
> >       3.01%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_table_lookup
> >       2.32%  ksoftirqd/0      [kernel.kallsyms]      [k] __dev_queue_xmit
> >       2.23%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_start_xmit
> >       2.21%  ksoftirqd/0      [kernel.kallsyms]      [k] __skb_flow_dissect
> >       2.13%  ksoftirqd/0      [kernel.kallsyms]      [k] __pi___clean_dcache_area_poc
> >       2.00%  ksoftirqd/0      [kernel.kallsyms]      [k] eth_type_trans
> >       1.86%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_poll_rx
> >       1.73%  ksoftirqd/0      [kernel.kallsyms]      [k] __local_bh_enable_ip
> >       1.63%  ksoftirqd/0      [kernel.kallsyms]      [k] fib_rules_lookup
> >       1.61%  ksoftirqd/0      [kernel.kallsyms]      [k] bcm4908_enet_poll_tx
> >       (...)
> > 
> > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> 
> Ping? Does it look OK to you?

Its ok, but I wonder if after all those years changing this default
won't confuse users, so perhaps adding a 'I' hotkey to toggle showing
idle symbols?

Additionally having a 'perf config report.hide_idle=true' (for 'perf
top' as well), so that users can just switch to their liking?

Also add an entry to tools/perf/Documentation/tips.txt so that it
appears from time to time on the last line on the screen?

- Arnaldo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-10-19  1:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-08  5:51 [PATCH] perf report: Skip symbols for idle symbols Rafał Miłecki
2022-10-18 12:54 ` Rafał Miłecki
2022-10-18 19:18   ` Arnaldo Carvalho de Melo

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.