[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240527090300.17864-1-yskelg@gmail.com>
Date: Mon, 27 May 2024 18:03:02 +0900
From: yskelg@...il.com
To: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Ian Rogers <irogers@...gle.com>,
Adrian Hunter <adrian.hunter@...el.com>,
"Liang, Kan" <kan.liang@...ux.intel.com>
Cc: Gautham Shenoy <gautham.shenoy@....com>,
K Prateek Nayak <kprateek.nayak@....com>,
skhan@...uxfoundation.org,
Austin Kim <austindh.kim@...il.com>,
shjy180909@...il.com,
linux-perf-users@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-kernel-mentees@...ts.linuxfoundation.org,
Yunseong Kim <yskelg@...il.com>
Subject: [PATCH] perf stat: allocation check when calculating cache instance ID
From: Yunseong Kim <yskelg@...il.com>
Adds an allocation check for cpu_map before perf_cpu_map__min() accessing
Signed-off-by: Yunseong Kim <yskelg@...il.com>
---
tools/perf/builtin-stat.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 35f79b48e8dc..1f238824abb2 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1291,20 +1291,22 @@ static struct option stat_options[] = {
*/
static int cpu__get_cache_id_from_map(struct perf_cpu cpu, char *map)
{
- int id;
+ int id = cpu.cpu;
struct perf_cpu_map *cpu_map = perf_cpu_map__new(map);
- /*
- * If the map contains no CPU, consider the current CPU to
- * be the first online CPU in the cache domain else use the
- * first online CPU of the cache domain as the ID.
- */
- id = perf_cpu_map__min(cpu_map).cpu;
- if (id == -1)
- id = cpu.cpu;
+ if (cpu_map) {
+ /*
+ * If the map contains no CPU, consider the current CPU to
+ * be the first online CPU in the cache domain else use the
+ * first online CPU of the cache domain as the ID.
+ */
+ id = perf_cpu_map__min(cpu_map).cpu;
+ if (id == -1)
+ id = cpu.cpu;
- /* Free the perf_cpu_map used to find the cache ID */
- perf_cpu_map__put(cpu_map);
+ /* Free the perf_cpu_map used to find the cache ID */
+ perf_cpu_map__put(cpu_map);
+ }
return id;
}
--
2.34.1
Powered by blists - more mailing lists