Re: [PATCH v1 1/8] perf: Increase MAX_NR_CPUS to 4096

From: Leo Yan
Date: Fri Dec 06 2024 - 05:30:51 EST


Hi Ian,

On Thu, Dec 05, 2024 at 08:40:28PM -0800, Ian Rogers wrote:
>
> From: Kyle Meyer <kyle.meyer@xxxxxxx>
>
> Systems have surpassed 2048 CPUs. Increase MAX_NR_CPUS to 4096.
>
> Bitmaps declared with MAX_NR_CPUS bits will increase from 256B to 512B,
> cpus_runtime will increase from 81960B to 163880B, and max_entries will
> increase from 8192B to 16384B.
>
> Signed-off-by: Kyle Meyer <kyle.meyer@xxxxxxx>
> Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/lib/perf/include/internal/cpumap.h | 2 +-
> tools/perf/perf.h | 2 +-
> tools/perf/util/bpf_skel/kwork_top.bpf.c | 4 +++-
> 3 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/tools/lib/perf/include/internal/cpumap.h b/tools/lib/perf/include/internal/cpumap.h
> index 49649eb51ce4..3cf28522004e 100644
> --- a/tools/lib/perf/include/internal/cpumap.h
> +++ b/tools/lib/perf/include/internal/cpumap.h
> @@ -22,7 +22,7 @@ DECLARE_RC_STRUCT(perf_cpu_map) {
> };
>
> #ifndef MAX_NR_CPUS
> -#define MAX_NR_CPUS 2048
> +#define MAX_NR_CPUS 4096
> #endif

This series is fine for me. Just wandering if we can use a central
place to maintain the macro, e.g. lib/perf/include/perf/cpumap.h. It
is pointless to define exactly same macros in different headers. As
least, I think we can unify this except the kwork bpf program?

P.s. for dynamically allocating per CPU maps in eBPF program, we can
refer to the code samples/bpf/xdp_sample_user.c, but this is another
topic.

Thanks,
Leo

> struct perf_cpu_map *perf_cpu_map__alloc(int nr_cpus);
> diff --git a/tools/perf/perf.h b/tools/perf/perf.h
> index c004dd4e65a3..3cb40965549f 100644
> --- a/tools/perf/perf.h
> +++ b/tools/perf/perf.h
> @@ -3,7 +3,7 @@
> #define _PERF_PERF_H
>
> #ifndef MAX_NR_CPUS
> -#define MAX_NR_CPUS 2048
> +#define MAX_NR_CPUS 4096
> #endif
>
> enum perf_affinity {
> diff --git a/tools/perf/util/bpf_skel/kwork_top.bpf.c b/tools/perf/util/bpf_skel/kwork_top.bpf.c
> index 594da91965a2..73e32e063030 100644
> --- a/tools/perf/util/bpf_skel/kwork_top.bpf.c
> +++ b/tools/perf/util/bpf_skel/kwork_top.bpf.c
> @@ -18,7 +18,9 @@ enum kwork_class_type {
> };
>
> #define MAX_ENTRIES 102400
> -#define MAX_NR_CPUS 2048
> +#ifndef MAX_NR_CPUS
> +#define MAX_NR_CPUS 4096
> +#endif
> #define PF_KTHREAD 0x00200000
> #define MAX_COMMAND_LEN 16
>
> --
> 2.47.0.338.g60cca15819-goog
>
>