]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf header: Replace hardcoded max cpus by MAX_NR_CPUS
authorSwapnil Sapkal <swapnil.sapkal@amd.com>
Tue, 27 Jan 2026 18:49:55 +0000 (18:49 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 28 Jan 2026 18:18:11 +0000 (15:18 -0300)
cpumask and cpulist from cpu-domain header have hardcoded max_cpus value
of 1024.

Current systems have more cpus than this value. Replace it with
MAX_NR_CPUS.

Also define a macro to represent domain name length.

Fixes: d40c68a49f69c9bd ("perf header: Support CPU DOMAIN relation info")
Reported-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Signed-off-by: Swapnil Sapkal <swapnil.sapkal@amd.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Anubhav Shelat <ashelat@redhat.com>
Cc: Chen Yu <yu.c.chen@intel.com>
Cc: Gautham Shenoy <gautham.shenoy@amd.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Thomas Falcon <thomas.falcon@intel.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/header.c
tools/perf/util/util.c

index eefd1cd73b6a53179a31da1834520b045c372284..31c3bab1b10af3ebeecf619b7f026cb1a2eb3908 100644 (file)
@@ -76,6 +76,7 @@ static const u64 __perf_magic2    = 0x32454c4946524550ULL;
 static const u64 __perf_magic2_sw = 0x50455246494c4532ULL;
 
 #define PERF_MAGIC     __perf_magic2
+#define DNAME_LEN      16
 
 const char perf_version_string[] = PERF_VERSION;
 
@@ -1616,10 +1617,10 @@ static int write_pmu_caps(struct feat_fd *ff,
 
 struct cpu_domain_map **build_cpu_domain_map(u32 *schedstat_version, u32 *max_sched_domains, u32 nr)
 {
+       char dname[DNAME_LEN], cpumask[MAX_NR_CPUS];
        struct domain_info *domain_info;
        struct cpu_domain_map **cd_map;
-       char dname[16], cpumask[256];
-       char cpulist[1024];
+       char cpulist[MAX_NR_CPUS];
        char *line = NULL;
        u32 cpu, domain;
        u32 dcount = 0;
index 03a603fbcd7dab6d0d028f4013f284a00da43945..94f5a2ece245863b9999ef017812133f0e1bf953 100644 (file)
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0
+#include "perf.h"
 #include "util.h"
 #include "debug.h"
 #include "event.h"
@@ -262,7 +263,7 @@ void cpumask_to_cpulist(char *cpumask, char *cpulist)
        int i, j, bm_size, nbits;
        int len = strlen(cpumask);
        unsigned long *bm;
-       char cpus[1024];
+       char cpus[MAX_NR_CPUS];
 
        for (i = 0; i < len; i++) {
                if (cpumask[i] == ',') {