1*713eeb22SIan Rogers // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*713eeb22SIan Rogers // Copyright (c) 2023 Red Hat 3*713eeb22SIan Rogers #include "vmlinux.h" 4*713eeb22SIan Rogers #include <bpf/bpf_tracing.h> 5*713eeb22SIan Rogers 6*713eeb22SIan Rogers unsigned int nr_uprobes; 7*713eeb22SIan Rogers unsigned int nr_uretprobes; 8*713eeb22SIan Rogers 9*713eeb22SIan Rogers SEC("uprobe") 10*713eeb22SIan Rogers int BPF_UPROBE(empty) 11*713eeb22SIan Rogers { 12*713eeb22SIan Rogers return 0; 13*713eeb22SIan Rogers } 14*713eeb22SIan Rogers 15*713eeb22SIan Rogers SEC("uprobe") 16*713eeb22SIan Rogers int BPF_UPROBE(trace_printk) 17*713eeb22SIan Rogers { 18*713eeb22SIan Rogers char fmt[] = "perf bench uprobe %u"; 19*713eeb22SIan Rogers 20*713eeb22SIan Rogers bpf_trace_printk(fmt, sizeof(fmt), ++nr_uprobes); 21*713eeb22SIan Rogers return 0; 22*713eeb22SIan Rogers } 23*713eeb22SIan Rogers 24*713eeb22SIan Rogers SEC("uretprobe") 25*713eeb22SIan Rogers int BPF_URETPROBE(empty_ret) 26*713eeb22SIan Rogers { 27*713eeb22SIan Rogers return 0; 28*713eeb22SIan Rogers } 29*713eeb22SIan Rogers 30*713eeb22SIan Rogers SEC("uretprobe") 31*713eeb22SIan Rogers int BPF_URETPROBE(trace_printk_ret) 32*713eeb22SIan Rogers { 33*713eeb22SIan Rogers char fmt[] = "perf bench uretprobe %u"; 34*713eeb22SIan Rogers 35*713eeb22SIan Rogers bpf_trace_printk(fmt, sizeof(fmt), ++nr_uretprobes); 36*713eeb22SIan Rogers return 0; 37*713eeb22SIan Rogers } 38*713eeb22SIan Rogers 39*713eeb22SIan Rogers char LICENSE[] SEC("license") = "Dual BSD/GPL"; 40