projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
739e2ed
)
perf tools: Allow overriding MAX_NR_CPUS at compile time
author
Christophe Leroy
<christophe.leroy@c-s.fr>
Fri, 22 Sep 2017 11:20:43 +0000
(13:20 +0200)
committer
Arnaldo Carvalho de Melo
<acme@redhat.com>
Wed, 1 Aug 2018 15:33:24 +0000
(12:33 -0300)
After update of kernel, the 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>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linuxppc-dev@lists.ozlabs.org
Link:
http://lkml.kernel.org/r/20170922112043.8349468C57@po15668-vm-win7.idsi0.si.c-s.fr
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/perf.h
patch
|
blob
|
history
diff --git
a/tools/perf/perf.h
b/tools/perf/perf.h
index d215714f48df5ebb259d8fddf98d2f831dcee513..21bf7f5a3cf51a1a42e3169daa738c8e7e0a8d83 100644
(file)
--- a/
tools/perf/perf.h
+++ b/
tools/perf/perf.h
@@
-25,7
+25,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;