diff options
| author | He Kuang <hekuang@huawei.com> | 2016-06-02 23:33:23 -0400 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-06-07 14:13:35 -0400 |
| commit | 057fbfb25cde4a368418f3f720cdc31d48800c4d (patch) | |
| tree | 4e5b2687ca585a93968fa40aa35eb9cef33223d3 /tools/perf/util/libunwind | |
| parent | 52ffe0ff02fc053a025c381d5808e9ecd3206dfe (diff) | |
perf callchain: Support aarch64 cross-platform
Support aarch64 cross platform callchain unwind.
Signed-off-by: He Kuang <hekuang@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ekaterina Tumanova <tumanova@linux.vnet.ibm.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1464924803-22214-15-git-send-email-hekuang@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/libunwind')
| -rw-r--r-- | tools/perf/util/libunwind/arm64.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/perf/util/libunwind/arm64.c b/tools/perf/util/libunwind/arm64.c new file mode 100644 index 000000000000..4fb5395669f8 --- /dev/null +++ b/tools/perf/util/libunwind/arm64.c | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | /* | ||
| 2 | * This file setups defines to compile arch specific binary from the | ||
| 3 | * generic one. | ||
| 4 | * | ||
| 5 | * The function 'LIBUNWIND__ARCH_REG_ID' name is set according to arch | ||
| 6 | * name and the defination of this function is included directly from | ||
| 7 | * 'arch/arm64/util/unwind-libunwind.c', to make sure that this function | ||
| 8 | * is defined no matter what arch the host is. | ||
| 9 | * | ||
| 10 | * Finally, the arch specific unwind methods are exported which will | ||
| 11 | * be assigned to each arm64 thread. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #define REMOTE_UNWIND_LIBUNWIND | ||
| 15 | |||
| 16 | #define LIBUNWIND__ARCH_REG_ID(regnum) libunwind__arm64_reg_id(regnum) | ||
| 17 | |||
| 18 | #include "unwind.h" | ||
| 19 | #include "debug.h" | ||
| 20 | #include "libunwind-aarch64.h" | ||
| 21 | #include <../../../../arch/arm64/include/uapi/asm/perf_regs.h> | ||
| 22 | #include "../../arch/arm64/util/unwind-libunwind.c" | ||
| 23 | |||
| 24 | /* NO_LIBUNWIND_DEBUG_FRAME is a feature flag for local libunwind, | ||
| 25 | * assign NO_LIBUNWIND_DEBUG_FRAME_AARCH64 to it for compiling arm64 | ||
| 26 | * unwind methods. | ||
| 27 | */ | ||
| 28 | #undef NO_LIBUNWIND_DEBUG_FRAME | ||
| 29 | #ifdef NO_LIBUNWIND_DEBUG_FRAME_AARCH64 | ||
| 30 | #define NO_LIBUNWIND_DEBUG_FRAME | ||
| 31 | #endif | ||
| 32 | #include "util/unwind-libunwind-local.c" | ||
| 33 | |||
| 34 | struct unwind_libunwind_ops * | ||
| 35 | arm64_unwind_libunwind_ops = &_unwind_libunwind_ops; | ||
