[PATCH RESEND] perf: Completely remove possibility to override MAX_NR_CPUS

Christophe Leroy posted 1 patch 1 month, 2 weeks ago
tools/perf/perf.h                        | 2 --
tools/perf/util/bpf_skel/kwork_top.bpf.c | 2 --
2 files changed, 4 deletions(-)
[PATCH RESEND] perf: Completely remove possibility to override MAX_NR_CPUS
Posted by Christophe Leroy 1 month, 2 weeks ago
Commit 21b8732eb447 ("perf tools: Allow overriding MAX_NR_CPUS at
compile time") added the capability to override MAX_NR_CPUS. At
that time it was necessary to reduce the huge amount of RAM used
by static stats variables.

But this has been unnecessary since commit 6a1e2c5c2673 ("perf stat:
Remove a set of shadow stats static variables"), and
commit e8399d34d568 ("libperf cpumap: Hide/reduce scope of
MAX_NR_CPUS") broke the build in that case because it failed to
add the guard around the new definition of MAX_NR_CPUS.

So cleanup things and remove guards completely to officialise it
is not necessary anymore to override MAX_NR_CPUS.

Link: https://lore.kernel.org/all/8c8553387ebf904a9e5a93eaf643cb01164d9fb3.1736188471.git.christophe.leroy@csgroup.eu/
Fixes: e8399d34d568 ("libperf cpumap: Hide/reduce scope of MAX_NR_CPUS")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
 tools/perf/perf.h                        | 2 --
 tools/perf/util/bpf_skel/kwork_top.bpf.c | 2 --
 2 files changed, 4 deletions(-)

diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index 3cb40965549f..e004178472d9 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -2,9 +2,7 @@
 #ifndef _PERF_PERF_H
 #define _PERF_PERF_H
 
-#ifndef MAX_NR_CPUS
 #define MAX_NR_CPUS			4096
-#endif
 
 enum perf_affinity {
 	PERF_AFFINITY_SYS = 0,
diff --git a/tools/perf/util/bpf_skel/kwork_top.bpf.c b/tools/perf/util/bpf_skel/kwork_top.bpf.c
index 73e32e063030..6673386302e2 100644
--- a/tools/perf/util/bpf_skel/kwork_top.bpf.c
+++ b/tools/perf/util/bpf_skel/kwork_top.bpf.c
@@ -18,9 +18,7 @@ enum kwork_class_type {
 };
 
 #define MAX_ENTRIES     102400
-#ifndef MAX_NR_CPUS
 #define MAX_NR_CPUS     4096
-#endif
 #define PF_KTHREAD      0x00200000
 #define MAX_COMMAND_LEN 16
 
-- 
2.49.0
Re: [PATCH RESEND] perf: Completely remove possibility to override MAX_NR_CPUS
Posted by Christophe Leroy 3 weeks ago
Le 18/08/2025 à 11:57, Christophe Leroy a écrit :
> Commit 21b8732eb447 ("perf tools: Allow overriding MAX_NR_CPUS at
> compile time") added the capability to override MAX_NR_CPUS. At
> that time it was necessary to reduce the huge amount of RAM used
> by static stats variables.
> 
> But this has been unnecessary since commit 6a1e2c5c2673 ("perf stat:
> Remove a set of shadow stats static variables"), and
> commit e8399d34d568 ("libperf cpumap: Hide/reduce scope of
> MAX_NR_CPUS") broke the build in that case because it failed to
> add the guard around the new definition of MAX_NR_CPUS.
> 
> So cleanup things and remove guards completely to officialise it
> is not necessary anymore to override MAX_NR_CPUS.
> 
> Link: https://lore.kernel.org/all/8c8553387ebf904a9e5a93eaf643cb01164d9fb3.1736188471.git.christophe.leroy@csgroup.eu/
> Fixes: e8399d34d568 ("libperf cpumap: Hide/reduce scope of MAX_NR_CPUS")
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>

Gentle ping

Thanks
Christophe

> ---
>   tools/perf/perf.h                        | 2 --
>   tools/perf/util/bpf_skel/kwork_top.bpf.c | 2 --
>   2 files changed, 4 deletions(-)
> 
> diff --git a/tools/perf/perf.h b/tools/perf/perf.h
> index 3cb40965549f..e004178472d9 100644
> --- a/tools/perf/perf.h
> +++ b/tools/perf/perf.h
> @@ -2,9 +2,7 @@
>   #ifndef _PERF_PERF_H
>   #define _PERF_PERF_H
>   
> -#ifndef MAX_NR_CPUS
>   #define MAX_NR_CPUS			4096
> -#endif
>   
>   enum perf_affinity {
>   	PERF_AFFINITY_SYS = 0,
> diff --git a/tools/perf/util/bpf_skel/kwork_top.bpf.c b/tools/perf/util/bpf_skel/kwork_top.bpf.c
> index 73e32e063030..6673386302e2 100644
> --- a/tools/perf/util/bpf_skel/kwork_top.bpf.c
> +++ b/tools/perf/util/bpf_skel/kwork_top.bpf.c
> @@ -18,9 +18,7 @@ enum kwork_class_type {
>   };
>   
>   #define MAX_ENTRIES     102400
> -#ifndef MAX_NR_CPUS
>   #define MAX_NR_CPUS     4096
> -#endif
>   #define PF_KTHREAD      0x00200000
>   #define MAX_COMMAND_LEN 16
>   

Re: [PATCH RESEND] perf: Completely remove possibility to override MAX_NR_CPUS
Posted by Arnaldo Carvalho de Melo 3 weeks ago
On Fri, Sep 12, 2025 at 10:32:56AM +0200, Christophe Leroy wrote:
> Le 18/08/2025 à 11:57, Christophe Leroy a écrit :
> > Commit 21b8732eb447 ("perf tools: Allow overriding MAX_NR_CPUS at
> > compile time") added the capability to override MAX_NR_CPUS. At
> > that time it was necessary to reduce the huge amount of RAM used
> > by static stats variables.
> > 
> > But this has been unnecessary since commit 6a1e2c5c2673 ("perf stat:
> > Remove a set of shadow stats static variables"), and
> > commit e8399d34d568 ("libperf cpumap: Hide/reduce scope of
> > MAX_NR_CPUS") broke the build in that case because it failed to
> > add the guard around the new definition of MAX_NR_CPUS.
> > 
> > So cleanup things and remove guards completely to officialise it
> > is not necessary anymore to override MAX_NR_CPUS.
> > 
> > Link: https://lore.kernel.org/all/8c8553387ebf904a9e5a93eaf643cb01164d9fb3.1736188471.git.christophe.leroy@csgroup.eu/
> > Fixes: e8399d34d568 ("libperf cpumap: Hide/reduce scope of MAX_NR_CPUS")
> > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> 
> Gentle ping

Thanks, applied to perf-tools-next,

- Arnaldo