[PATCH v3 6/6] perf/util/header: Replace MAX_NR_CPUS with cpu__max_cpu

From: Kyle Meyer
Date: Mon Aug 19 2019 - 16:24:00 EST


The function cpu__max_cpu returns the possible number of CPUs as defined in the
sysfs and can be used as an alternative for MAX_NR_CPUS in write_cache.
MAX_CACHES is replaced by cpu__max_cpu() * MAX_CACHE_LVL.

Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Russ Anderson <russ.anderson@xxxxxxx>
Signed-off-by: Kyle Meyer <kyle.meyer@xxxxxxx>
---
tools/perf/util/header.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index b04c2b6b28b3..16f422bd0acc 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -1121,16 +1121,17 @@ static int build_caches(struct cpu_cache_level caches[], u32 size, u32 *cntp)
return 0;
}

-#define MAX_CACHES (MAX_NR_CPUS * 4)
+#define MAX_CACHE_LVL 4

static int write_cache(struct feat_fd *ff,
struct evlist *evlist __maybe_unused)
{
- struct cpu_cache_level caches[MAX_CACHES];
+ u32 max_caches = cpu__max_cpu() * MAX_CACHE_LVL;
+ struct cpu_cache_level caches[max_caches];
u32 cnt = 0, i, version = 1;
int ret;

- ret = build_caches(caches, MAX_CACHES, &cnt);
+ ret = build_caches(caches, max_caches, &cnt);
if (ret)
goto out;

--
2.12.3