2023-02-06 11:28:17

by Rong Tao

[permalink] [raw]
Subject: [PATCH bpf-next] samples: bpf: Add macro SYSCALL() for aarch64

From: Rong Tao <[email protected]>

kernel arm64/kernel/sys.c macro __SYSCALL() adds a prefix __arm64_, we
should support it for aarch64. The following is the output of the bpftrace
script:

$ sudo bpftrace -l | grep sys_write
...
kprobe:__arm64_sys_write
kprobe:__arm64_sys_writev
...

Signed-off-by: Rong Tao <[email protected]>
---
samples/bpf/trace_common.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/samples/bpf/trace_common.h b/samples/bpf/trace_common.h
index 8cb5400aed1f..fafc699af0a3 100644
--- a/samples/bpf/trace_common.h
+++ b/samples/bpf/trace_common.h
@@ -6,6 +6,8 @@
#define SYSCALL(SYS) "__x64_" __stringify(SYS)
#elif defined(__s390x__)
#define SYSCALL(SYS) "__s390x_" __stringify(SYS)
+#elif defined(__aarch64__)
+#define SYSCALL(SYS) "__arm64_" __stringify(SYS)
#else
#define SYSCALL(SYS) __stringify(SYS)
#endif
--
2.39.1



2023-02-06 22:54:26

by Andrii Nakryiko

[permalink] [raw]
Subject: Re: [PATCH bpf-next] samples: bpf: Add macro SYSCALL() for aarch64

On Mon, Feb 6, 2023 at 3:34 AM Rong Tao <[email protected]> wrote:
>
> From: Rong Tao <[email protected]>
>
> kernel arm64/kernel/sys.c macro __SYSCALL() adds a prefix __arm64_, we
> should support it for aarch64. The following is the output of the bpftrace
> script:
>
> $ sudo bpftrace -l | grep sys_write
> ...
> kprobe:__arm64_sys_write
> kprobe:__arm64_sys_writev
> ...
>
> Signed-off-by: Rong Tao <[email protected]>
> ---

samples were converted to SEC("ksyscall") programs and BPF_KSYSCALL()
macro, there is not even samples/bpf/trace_common.h there. Please
check the latest bpf-next/master.


> samples/bpf/trace_common.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/samples/bpf/trace_common.h b/samples/bpf/trace_common.h
> index 8cb5400aed1f..fafc699af0a3 100644
> --- a/samples/bpf/trace_common.h
> +++ b/samples/bpf/trace_common.h
> @@ -6,6 +6,8 @@
> #define SYSCALL(SYS) "__x64_" __stringify(SYS)
> #elif defined(__s390x__)
> #define SYSCALL(SYS) "__s390x_" __stringify(SYS)
> +#elif defined(__aarch64__)
> +#define SYSCALL(SYS) "__arm64_" __stringify(SYS)
> #else
> #define SYSCALL(SYS) __stringify(SYS)
> #endif
> --
> 2.39.1
>