Re: [PATCH 3/3] perf trace arm64: Use generated syscall table

From: Hendrik Brueckner
Date: Wed Jul 04 2018 - 03:38:24 EST


On Tue, Jul 03, 2018 at 12:32:38PM -0500, Kim Phillips wrote:
> This should speed up accessing new system calls introduced with the
> kernel rather than waiting for libaudit updates to include them.
>
> It also enables users to specify wildcards, for example, perf trace -e
> 'open*', just like was already possible on x86, s390, and powerpc, which
> means arm64 can now pass the "Check open filename arg using perf trace +
> vfs_getname" test.
>
> Cc: Ravi Bangoria <ravi.bangoria@xxxxxxxxxxxxxxxxxx>
> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> Cc: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Thomas Richter <tmricht@xxxxxxxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Signed-off-by: Kim Phillips <kim.phillips@xxxxxxx>
> ---
> tools/perf/Makefile.config | 2 ++
> tools/perf/util/syscalltbl.c | 4 ++++
> 2 files changed, 6 insertions(+)
>
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index b5ac356ba323..3126155810bb 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -54,6 +54,8 @@ endif
>
> ifeq ($(SRCARCH),arm64)
> NO_PERF_REGS := 0
> + NO_SYSCALL_TABLE := 0
> + CFLAGS += -I$(OUTPUT)arch/arm64/include/generated
> LIBUNWIND_LIBS = -lunwind -lunwind-aarch64
> endif
>
> diff --git a/tools/perf/util/syscalltbl.c b/tools/perf/util/syscalltbl.c
> index 0ee7f568d60c..3393d7ee9401 100644
> --- a/tools/perf/util/syscalltbl.c
> +++ b/tools/perf/util/syscalltbl.c
> @@ -38,6 +38,10 @@ static const char **syscalltbl_native = syscalltbl_powerpc_64;
> #include <asm/syscalls_32.c>
> const int syscalltbl_native_max_id = SYSCALLTBL_POWERPC_32_MAX_ID;
> static const char **syscalltbl_native = syscalltbl_powerpc_32;
> +#elif defined(__aarch64__)
> +#include <asm/syscalls.c>
> +const int syscalltbl_native_max_id = SYSCALLTBL_ARM64_MAX_ID;
> +static const char **syscalltbl_native = syscalltbl_arm64;
> #endif
>
> struct syscall {

Looks good.

Reviewed-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxx>