• Christophe Leroy's avatar
    perf tools: Allow overriding MAX_NR_CPUS at compile time · 21b8732e
    Christophe Leroy authored
    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 4d255766 ("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: default avatarChristophe 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.frSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    21b8732e
perf.h 2.2 KB