libbpf-tools/opensnoop: disable open on aarch64
authorDominique Martinet <dominique.martinet@atmark-techno.com>
Mon, 5 Apr 2021 23:14:06 +0000 (08:14 +0900)
committeryonghong-song <ys114321@gmail.com>
Thu, 13 May 2021 22:51:11 +0000 (15:51 -0700)
aarch64 has no open syscall, do not attempt to trace it.

Fixes #3344.

libbpf-tools/opensnoop.c

index 104783b5e47fafc1b02a1aae6dc6940c7db2df41..947d14f2f8f010f6c70352457f543cab3f7dd7f3 100644 (file)
@@ -242,6 +242,16 @@ int main(int argc, char **argv)
        obj->rodata->targ_uid = env.uid;
        obj->rodata->targ_failed = env.failed;
 
+#ifdef __aarch64__
+       /* aarch64 has no open syscall, only openat variants.
+        * Disable associated tracepoints that do not exist. See #3344.
+        */
+       bpf_program__set_autoload(
+               obj->progs.tracepoint__syscalls__sys_enter_open, false);
+       bpf_program__set_autoload(
+               obj->progs.tracepoint__syscalls__sys_exit_open, false);
+#endif
+
        err = opensnoop_bpf__load(obj);
        if (err) {
                fprintf(stderr, "failed to load BPF object: %d\n", err);