All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: allow overriding MAX_NR_CPUS at compile time
@ 2017-09-22 11:20 Christophe Leroy
  2017-09-22 14:09 ` Arnaldo Carvalho de Melo
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Christophe Leroy @ 2017-09-22 11:20 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Alexander Shishkin
  Cc: linux-kernel, linuxppc-dev

After update of kernel, perf tool doesn't run anymore on my
32MB RAM powerpc board, but still runs on a 128MB RAM board:

~# strace perf
execve("/usr/sbin/perf", ["perf"], [/* 12 vars */]) = -1 ENOMEM (Cannot allocate memory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
+++ killed by SIGSEGV +++
Segmentation fault

objdump -x shows that .bss section has a huge size of 24Mbytes:

 27 .bss          016baca8  101cebb8  101cebb8  001cd988  2**3

With especially the following objects having quite big size

10205f80 l     O .bss	00140000              runtime_cycles_stats
10345f80 l     O .bss	00140000              runtime_stalled_cycles_front_stats
10485f80 l     O .bss	00140000              runtime_stalled_cycles_back_stats
105c5f80 l     O .bss	00140000              runtime_branches_stats
10705f80 l     O .bss	00140000              runtime_cacherefs_stats
10845f80 l     O .bss	00140000              runtime_l1_dcache_stats
10985f80 l     O .bss	00140000              runtime_l1_icache_stats
10ac5f80 l     O .bss	00140000              runtime_ll_cache_stats
10c05f80 l     O .bss	00140000              runtime_itlb_cache_stats
10d45f80 l     O .bss	00140000              runtime_dtlb_cache_stats
10e85f80 l     O .bss	00140000              runtime_cycles_in_tx_stats
10fc5f80 l     O .bss	00140000              runtime_transaction_stats
11105f80 l     O .bss	00140000              runtime_elision_stats
11245f80 l     O .bss	00140000              runtime_topdown_total_slots
11385f80 l     O .bss	00140000              runtime_topdown_slots_retired
114c5f80 l     O .bss	00140000              runtime_topdown_slots_issued
11605f80 l     O .bss	00140000              runtime_topdown_fetch_bubbles
11745f80 l     O .bss	00140000              runtime_topdown_recovery_bubbles

This is due to commit 4d255766d28b1 ("perf: Bump max number of cpus
to 1024"), because many tables are sized with MAX_NR_CPUS

This patch gives the opportunity to redefine MAX_NR_CPUS via

make EXTRA_CFLAGS=-DMAX_NR_CPUS=1

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
 tools/perf/perf.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index dc442ba21bf6..a9db563da0a9 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -23,7 +23,9 @@ static inline unsigned long long rdclock(void)
 	return ts.tv_sec * 1000000000ULL + ts.tv_nsec;
 }
 
+#ifndef MAX_NR_CPUS
 #define MAX_NR_CPUS			1024
+#endif
 
 extern const char *input_name;
 extern bool perf_host, perf_guest;
-- 
2.13.3

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

end of thread, other threads:[~2018-08-02  8:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-22 11:20 [PATCH] perf tools: allow overriding MAX_NR_CPUS at compile time Christophe Leroy
2017-09-22 14:09 ` Arnaldo Carvalho de Melo
2018-05-03 13:40 ` Arnaldo Carvalho de Melo
2018-08-01  9:37   ` Christophe LEROY
2018-08-01 14:40     ` Arnaldo Carvalho de Melo
2018-08-02  8:16 ` [tip:perf/core] perf tools: Allow " tip-bot for Christophe Leroy

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.