LinuxPPC-Dev Archive on
 help / color / Atom feed
From: Christophe Leroy <>
To: Peter Zijlstra <>,
	Ingo Molnar <>,
	Arnaldo Carvalho de Melo <>,
	Alexander Shishkin <>
Subject: [PATCH] perf tools: allow overriding MAX_NR_CPUS at compile time
Date: Fri, 22 Sep 2017 13:20:43 +0200 (CEST)
Message-ID: <> (raw)

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


Signed-off-by: Christophe Leroy <>
 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
 extern const char *input_name;
 extern bool perf_host, perf_guest;

             reply index

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-22 11:20 Christophe Leroy [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

LinuxPPC-Dev Archive on

Archives are clonable:
	git clone --mirror linuxppc-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linuxppc-dev linuxppc-dev/ \
	public-inbox-index linuxppc-dev

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone