Lines Matching refs:fprobe

16 use fprobe. Compared with kprobes and kretprobes, fprobe gives faster
18 describes how to use fprobe.
20 The usage of fprobe
23 The fprobe is a wrapper of ftrace (+ kretprobe-like return callback) to
25 the `struct fprobe` and pass it to `register_fprobe()`.
27 Typically, `fprobe` data structure is initialized with the `entry_handler`
32 struct fprobe fp = {
37 To enable the fprobe, call one of register_fprobe(), register_fprobe_ips(), and
38 register_fprobe_syms(). These functions register the fprobe with different types
41 The register_fprobe() enables a fprobe by function-name filters.
46 The register_fprobe_ips() enables a fprobe by ftrace-location addresses.
55 And the register_fprobe_syms() enables a fprobe by symbol names.
64 To disable (remove from functions) this fprobe, call::
68 You can temporally (soft) disable the fprobe by::
78 #include <linux/fprobe.h>
88 The fprobe entry/exit handler
95 …int entry_callback(struct fprobe *fp, unsigned long entry_ip, unsigned long ret_ip, struct ftrace_…
97 …void exit_callback(struct fprobe *fp, unsigned long entry_ip, unsigned long ret_ip, struct ftrace_…
105 This is the address of `fprobe` data structure related to this handler.
106 You can embed the `fprobe` to your data structure and get it by
126 and `entry_data_size` field when registering the fprobe, the storage is
136 each fprobe which has exit handler uses a `sizeof(long)` space on the stack,
143 Since the recursion safeness of the fprobe (and ftrace) is a bit different
145 code from the fprobe and the kprobes.
148 handler from recursion in all cases. On the other hand, fprobe uses
150 call another (or same) fprobe while the fprobe user handler is running.
160 *before* registering the fprobe, like:
164 fprobe.flags = FPROBE_FL_KPROBE_SHARED;
166 register_fprobe(&fprobe, "func*", NULL);
173 The `fprobe` data structure has `fprobe::nmissed` counter field as same as
177 - fprobe fails to take ftrace_recursion lock. This usually means that a function
180 - fprobe fails to setup the function exit because of failing to allocate the
183 The `fprobe::nmissed` field counts up in both cases. Therefore, the former
188 `fprobe::ops::flags` (ftrace_ops::flags) when registering the fprobe, this
189 counter may not work correctly, because ftrace skips the fprobe function which
196 .. kernel-doc:: include/linux/fprobe.h
197 .. kernel-doc:: kernel/trace/fprobe.c