[PATCH v3 0/6] perf: Replace MAX_NR_CPUS with dynamic alternatives

From: Kyle Meyer
Date: Mon Aug 19 2019 - 16:23:11 EST


The purpose of this patch series is to replace MAX_NR_CPUS with a dynamic value
throughout perf wherever possible using nr_cpus_online, the number of CPUs
online during a record session, and cpu__max_cpu, the possible number of CPUs as
defined in the sysfs. MAX_NR_CPUS is still used by DECLARE_BITMAP at compile
time, however, it's replaced elsewhere.

This patch series was tested using "perf record -a -g" on both an eight socket
(288 CPU) system and a single socket (36 CPU) system. Each system was then
rebooted single socket and eight socket before "perf report" was used to read
the perf.data out file. "perf report --header" was used to confirm that each
perf.data file had information on the correct number of CPUs.

Change since v1:
Broke PATCH 2/2 into multiple patches.

Changes since v2:
Replaced env->sibling_cores and env->sibling threads with a local pointer and
refreshed perf/util/svghelper.

Kyle Meyer (6):
perf: Refactor svg_build_topology_map
perf/util/svghelper: Replace MAX_NR_CPUS with env->nr_cpus_online
perf/util/stat: Replace MAX_NR_CPUS with cpu__max_cpu
perf/util/session: Replace MAX_NR_CPUS with nr_cpus_online
perf/util/machine: Replace MAX_NR_CPUS with nr_cpus_online
perf/util/header: Replace MAX_NR_CPUS with cpu__max_cpu

tools/perf/builtin-timechart.c | 5 +----
tools/perf/util/header.c | 7 +++---
tools/perf/util/machine.c | 12 ++++++-----
tools/perf/util/session.c | 6 +++---
tools/perf/util/stat.c | 4 ++--
tools/perf/util/svghelper.c | 48 +++++++++++++++++++++---------------------
tools/perf/util/svghelper.h | 4 +++-
7 files changed, 44 insertions(+), 42 deletions(-)

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>
--
2.12.3