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