1c5d420c3SAndrii Nakryiko // SPDX-License-Identifier: GPL-2.0 2c5d420c3SAndrii Nakryiko // Copyright (c) 2020 Facebook 3c5d420c3SAndrii Nakryiko 4c5d420c3SAndrii Nakryiko #include <linux/bpf.h> 5c5d420c3SAndrii Nakryiko #include <asm/unistd.h> 6c5d420c3SAndrii Nakryiko #include <bpf/bpf_helpers.h> 7c5d420c3SAndrii Nakryiko #include <bpf/bpf_tracing.h> 8*e91d280cSNaveen N. Rao #include "bpf_misc.h" 9c5d420c3SAndrii Nakryiko 10c5d420c3SAndrii Nakryiko char _license[] SEC("license") = "GPL"; 11c5d420c3SAndrii Nakryiko 12c5d420c3SAndrii Nakryiko long hits = 0; 13c5d420c3SAndrii Nakryiko 14c5d420c3SAndrii Nakryiko SEC("tp/syscalls/sys_enter_getpgid") 15c5d420c3SAndrii Nakryiko int bench_trigger_tp(void *ctx) 16c5d420c3SAndrii Nakryiko { 17c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 18c5d420c3SAndrii Nakryiko return 0; 19c5d420c3SAndrii Nakryiko } 20c5d420c3SAndrii Nakryiko 21c5d420c3SAndrii Nakryiko SEC("raw_tp/sys_enter") 22c5d420c3SAndrii Nakryiko int BPF_PROG(bench_trigger_raw_tp, struct pt_regs *regs, long id) 23c5d420c3SAndrii Nakryiko { 24c5d420c3SAndrii Nakryiko if (id == __NR_getpgid) 25c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 26c5d420c3SAndrii Nakryiko return 0; 27c5d420c3SAndrii Nakryiko } 28c5d420c3SAndrii Nakryiko 29*e91d280cSNaveen N. Rao SEC("kprobe/" SYS_PREFIX "sys_getpgid") 30c5d420c3SAndrii Nakryiko int bench_trigger_kprobe(void *ctx) 31c5d420c3SAndrii Nakryiko { 32c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 33c5d420c3SAndrii Nakryiko return 0; 34c5d420c3SAndrii Nakryiko } 35c5d420c3SAndrii Nakryiko 36*e91d280cSNaveen N. Rao SEC("fentry/" SYS_PREFIX "sys_getpgid") 37c5d420c3SAndrii Nakryiko int bench_trigger_fentry(void *ctx) 38c5d420c3SAndrii Nakryiko { 39c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 40c5d420c3SAndrii Nakryiko return 0; 41c5d420c3SAndrii Nakryiko } 42c5d420c3SAndrii Nakryiko 43*e91d280cSNaveen N. Rao SEC("fentry.s/" SYS_PREFIX "sys_getpgid") 44e68a1445SAlexei Starovoitov int bench_trigger_fentry_sleep(void *ctx) 45e68a1445SAlexei Starovoitov { 46e68a1445SAlexei Starovoitov __sync_add_and_fetch(&hits, 1); 47e68a1445SAlexei Starovoitov return 0; 48e68a1445SAlexei Starovoitov } 49e68a1445SAlexei Starovoitov 50*e91d280cSNaveen N. Rao SEC("fmod_ret/" SYS_PREFIX "sys_getpgid") 51c5d420c3SAndrii Nakryiko int bench_trigger_fmodret(void *ctx) 52c5d420c3SAndrii Nakryiko { 53c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 54c5d420c3SAndrii Nakryiko return -22; 55c5d420c3SAndrii Nakryiko } 56d41bc48bSAndrii Nakryiko 57d41bc48bSAndrii Nakryiko SEC("uprobe/self/uprobe_target") 58d41bc48bSAndrii Nakryiko int bench_trigger_uprobe(void *ctx) 59d41bc48bSAndrii Nakryiko { 60d41bc48bSAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 61d41bc48bSAndrii Nakryiko return 0; 62d41bc48bSAndrii Nakryiko } 63