Lines Matching refs:fprobe
15 use fprobe. Compared with kprobes and kretprobes, fprobe gives faster
17 describes how to use fprobe.
19 The usage of fprobe
22 The fprobe is a wrapper of ftrace (+ kretprobe-like return callback) to
24 the `struct fprobe` and pass it to `register_fprobe()`.
26 Typically, `fprobe` data structure is initialized with the `entry_handler`
31 struct fprobe fp = {
36 To enable the fprobe, call one of register_fprobe(), register_fprobe_ips(), and
37 register_fprobe_syms(). These functions register the fprobe with different types
40 The register_fprobe() enables a fprobe by function-name filters.
45 The register_fprobe_ips() enables a fprobe by ftrace-location addresses.
54 And the register_fprobe_syms() enables a fprobe by symbol names.
63 To disable (remove from functions) this fprobe, call::
67 You can temporally (soft) disable the fprobe by::
77 #include <linux/fprobe.h>
87 The fprobe entry/exit handler
94 …int entry_callback(struct fprobe *fp, unsigned long entry_ip, unsigned long ret_ip, struct pt_regs…
96 …void exit_callback(struct fprobe *fp, unsigned long entry_ip, unsigned long ret_ip, struct pt_regs…
102 This is the address of `fprobe` data structure related to this handler.
103 You can embed the `fprobe` to your data structure and get it by
125 and `entry_data_size` field when registering the fprobe, the storage is
131 Since the recursion safeness of the fprobe (and ftrace) is a bit different
133 code from the fprobe and the kprobes.
136 handler from recursion in all cases. On the other hand, fprobe uses
138 call another (or same) fprobe while the fprobe user handler is running.
148 *before* registering the fprobe, like:
152 fprobe.flags = FPROBE_FL_KPROBE_SHARED;
154 register_fprobe(&fprobe, "func*", NULL);
161 The `fprobe` data structure has `fprobe::nmissed` counter field as same as
165 - fprobe fails to take ftrace_recursion lock. This usually means that a function
168 - fprobe fails to setup the function exit because of the shortage of rethook
171 The `fprobe::nmissed` field counts up in both cases. Therefore, the former
176 `fprobe::ops::flags` (ftrace_ops::flags) when registering the fprobe, this
177 counter may not work correctly, because ftrace skips the fprobe function which
184 .. kernel-doc:: include/linux/fprobe.h
185 .. kernel-doc:: kernel/trace/fprobe.c