perf env: Normalize aarch64.* and arm64.* to arm64 in normalize_arch()
authorLi Huafei <lihuafei1@huawei.com>
Mon, 26 Jul 2021 12:38:53 +0000 (20:38 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 2 Aug 2021 12:56:18 +0000 (09:56 -0300)
On my aarch64 big endian machine, the perf annotate does not work.

 # perf annotate
  Percent |      Source code & Disassembly of [kernel.kallsyms] for cycles (253 samples, percent: local period)
 --------------------------------------------------------------------------------------------------------------
  Percent |      Source code & Disassembly of [kernel.kallsyms] for cycles (1 samples, percent: local period)
 ------------------------------------------------------------------------------------------------------------
  Percent |      Source code & Disassembly of [kernel.kallsyms] for cycles (47 samples, percent: local period)
 -------------------------------------------------------------------------------------------------------------
 ...

This is because the arch_find() function uses the normalized architecture
name provided by normalize_arch(), and my machine's architecture name
aarch64_be is not normalized to arm64.  Like other architectures such as
arm and powerpc, we can fuzzy match the architecture names associated with
aarch64.* and normalize them.

It seems that there is also arm64_be architecture name, which we also
normalize to arm64.

Signed-off-by: Li Huafei <lihuafei1@huawei.com>
Reviewed-by: James Clark <james.clark@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Dengcheng Zhu <dzhu@wavecomp.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Martin Liška <mliska@suse.cz>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Riccardo Mancini <rickyman7@gmail.com>
Cc: Zhang Jinhao <zhangjinhao2@huawei.com>
Link: http //lore.kernel.org/lkml/20210726123854.13463-1-lihuafei1@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/env.c

index cec2e6c..ab34105 100644 (file)
@@ -349,7 +349,7 @@ static const char *normalize_arch(char *arch)
                return "x86";
        if (!strcmp(arch, "sun4u") || !strncmp(arch, "sparc", 5))
                return "sparc";
-       if (!strcmp(arch, "aarch64") || !strcmp(arch, "arm64"))
+       if (!strncmp(arch, "aarch64", 7) || !strncmp(arch, "arm64", 5))
                return "arm64";
        if (!strncmp(arch, "arm", 3) || !strcmp(arch, "sa110"))
                return "arm";