All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: handle TOPOLOGY headers with no CPU
@ 2019-01-19  8:12 Stephane Eranian
  2019-01-20 18:19 ` Jiri Olsa
  2019-01-22 11:36 ` [tip:perf/urgent] perf tools: Handle " tip-bot for Stephane Eranian
  0 siblings, 2 replies; 3+ messages in thread
From: Stephane Eranian @ 2019-01-19  8:12 UTC (permalink / raw)
  To: linux-kernel; +Cc: acme, jolsa, peterz, mingo, ak, kan.liang

This patch fixes an issue in cpumap.c when used with the
TOPOLOGY header. In some configurations, some NUMA nodes may
have no CPU (empty cpulist). Yet a cpumap map must be created
otherwise perf abort with an error. This patch handles this
case by creating a dummy map.

Before:
$ perf record -o - -e cycles noploop 2 | perf script -i -
0x6e8 [0x6c]: failed to process type: 80

After:
$ perf record -o - -e cycles noploop 2 | perf script -i -
noploop for 2 seconds

Signed-off-by: Stephane Eranian <eranian@google.com>
---
 tools/perf/util/cpumap.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c
index 1ccbd3342069..383674f448fc 100644
--- a/tools/perf/util/cpumap.c
+++ b/tools/perf/util/cpumap.c
@@ -134,7 +134,12 @@ struct cpu_map *cpu_map__new(const char *cpu_list)
 	if (!cpu_list)
 		return cpu_map__read_all_cpu_map();
 
-	if (!isdigit(*cpu_list))
+	/*
+	 * must handle the case of empty cpumap to cover
+	 * TOPOLOGY header for NUMA nodes with no CPU
+	 * ( e.g., because of CPU hotplug)
+	 */
+	if (!isdigit(*cpu_list) && *cpu_list != '\0')
 		goto out;
 
 	while (isdigit(*cpu_list)) {
@@ -181,8 +186,10 @@ struct cpu_map *cpu_map__new(const char *cpu_list)
 
 	if (nr_cpus > 0)
 		cpus = cpu_map__trim_new(nr_cpus, tmp_cpus);
-	else
+	else if (*cpu_list != '\0')
 		cpus = cpu_map__default_new();
+	else
+		cpus = cpu_map__dummy_new();
 invalid:
 	free(tmp_cpus);
 out:
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-01-22 11:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-19  8:12 [PATCH] perf tools: handle TOPOLOGY headers with no CPU Stephane Eranian
2019-01-20 18:19 ` Jiri Olsa
2019-01-22 11:36 ` [tip:perf/urgent] perf tools: Handle " tip-bot for Stephane Eranian

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.