perf header: Replace MAX_NR_CPUS with cpu__max_cpu()
authorKyle Meyer <meyerk@hpe.com>
Tue, 27 Aug 2019 21:43:51 +0000 (16:43 -0500)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 29 Aug 2019 20:38:32 +0000 (17:38 -0300)
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.

Signed-off-by: Kyle Meyer <kyle.meyer@hpe.com>
Reviewed-by: Jiri Olsa <jolsa@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russ Anderson <russ.anderson@hpe.com>
Link: http://lore.kernel.org/lkml/20190827214352.94272-7-meyerk@stormcage.eag.rdlabs.hpecorp.net
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/header.c

index 0a842d9..dd2bb08 100644 (file)
@@ -1122,16 +1122,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;