OSDN Git Service

perf augmented_syscalls: Drop 'write', 'poll' for testing without self pid filter
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 6 Nov 2018 19:01:26 +0000 (16:01 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 21 Nov 2018 15:00:31 +0000 (12:00 -0300)
When testing system wide tracing without filtering the syscalls called
by 'perf trace' itself we get into a feedback loop, drop for now those
two syscalls, that are the ones that 'perf trace' does in its loop for
writing the syscalls it intercepts, to help with testing till we get
that filtering in place.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-rkbu536af66dbsfx51sr8yof@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/examples/bpf/augmented_raw_syscalls.c

index ec109c1..7d72931 100644 (file)
@@ -43,7 +43,9 @@ struct augmented_filename {
        char            value[256];
 };
 
+#define SYS_WRITE 1
 #define SYS_OPEN 2
+#define SYS_POLL 7
 #define SYS_OPENAT 257
 
 SEC("raw_syscalls:sys_enter")
@@ -101,6 +103,8 @@ int sys_enter(struct syscall_enter_args *args)
         *       after the ctx memory access to prevent their down stream merging.
         */
        switch (augmented_args.args.syscall_nr) {
+       case SYS_WRITE:
+       case SYS_POLL:   return 0;
        case SYS_OPEN:   filename_arg = (const void *)args->args[0];
                        __asm__ __volatile__("": : :"memory");
                         break;