projects
/
platform
/
kernel
/
linux-exynos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e296ac4
)
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
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Wed, 19 Sep 2018 20:43:40 +0000
(22:43 +0200)
[ Upstream commit
21b8732eb4479b579bda9ee38e62b2c312c2a0e5
]
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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/perf/perf.h
patch
|
blob
|
history
diff --git
a/tools/perf/perf.h
b/tools/perf/perf.h
index
5508638
..
96f62dd
100644
(file)
--- a/
tools/perf/perf.h
+++ b/
tools/perf/perf.h
@@
-24,7
+24,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;