1*c5d420c3SAndrii Nakryiko // SPDX-License-Identifier: GPL-2.0 2*c5d420c3SAndrii Nakryiko // Copyright (c) 2020 Facebook 3*c5d420c3SAndrii Nakryiko 4*c5d420c3SAndrii Nakryiko #include <linux/bpf.h> 5*c5d420c3SAndrii Nakryiko #include <asm/unistd.h> 6*c5d420c3SAndrii Nakryiko #include <bpf/bpf_helpers.h> 7*c5d420c3SAndrii Nakryiko #include <bpf/bpf_tracing.h> 8*c5d420c3SAndrii Nakryiko 9*c5d420c3SAndrii Nakryiko char _license[] SEC("license") = "GPL"; 10*c5d420c3SAndrii Nakryiko 11*c5d420c3SAndrii Nakryiko long hits = 0; 12*c5d420c3SAndrii Nakryiko 13*c5d420c3SAndrii Nakryiko SEC("tp/syscalls/sys_enter_getpgid") 14*c5d420c3SAndrii Nakryiko int bench_trigger_tp(void *ctx) 15*c5d420c3SAndrii Nakryiko { 16*c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 17*c5d420c3SAndrii Nakryiko return 0; 18*c5d420c3SAndrii Nakryiko } 19*c5d420c3SAndrii Nakryiko 20*c5d420c3SAndrii Nakryiko SEC("raw_tp/sys_enter") 21*c5d420c3SAndrii Nakryiko int BPF_PROG(bench_trigger_raw_tp, struct pt_regs *regs, long id) 22*c5d420c3SAndrii Nakryiko { 23*c5d420c3SAndrii Nakryiko if (id == __NR_getpgid) 24*c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 25*c5d420c3SAndrii Nakryiko return 0; 26*c5d420c3SAndrii Nakryiko } 27*c5d420c3SAndrii Nakryiko 28*c5d420c3SAndrii Nakryiko SEC("kprobe/__x64_sys_getpgid") 29*c5d420c3SAndrii Nakryiko int bench_trigger_kprobe(void *ctx) 30*c5d420c3SAndrii Nakryiko { 31*c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 32*c5d420c3SAndrii Nakryiko return 0; 33*c5d420c3SAndrii Nakryiko } 34*c5d420c3SAndrii Nakryiko 35*c5d420c3SAndrii Nakryiko SEC("fentry/__x64_sys_getpgid") 36*c5d420c3SAndrii Nakryiko int bench_trigger_fentry(void *ctx) 37*c5d420c3SAndrii Nakryiko { 38*c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 39*c5d420c3SAndrii Nakryiko return 0; 40*c5d420c3SAndrii Nakryiko } 41*c5d420c3SAndrii Nakryiko 42*c5d420c3SAndrii Nakryiko SEC("fmod_ret/__x64_sys_getpgid") 43*c5d420c3SAndrii Nakryiko int bench_trigger_fmodret(void *ctx) 44*c5d420c3SAndrii Nakryiko { 45*c5d420c3SAndrii Nakryiko __sync_add_and_fetch(&hits, 1); 46*c5d420c3SAndrii Nakryiko return -22; 47*c5d420c3SAndrii Nakryiko } 48