/linux/include/linux/ |
H A D | kprobes.h | 51 struct kretprobe; 142 struct kretprobe __rcu *rp; 146 struct kretprobe { struct 198 static nokprobe_inline struct kretprobe *get_kretprobe(struct kretprobe_instance *ri) in get_kretprobe() 201 return (struct kretprobe *)ri->node.rethook->data; in get_kretprobe() 233 * Set a dummy kprobe for avoiding kretprobe recursion. in kretprobe_trampoline_handler() 234 * Since kretprobe never runs in kprobe handler, no kprobe must in kretprobe_trampoline_handler() 244 static nokprobe_inline struct kretprobe *get_kretprobe(struct kretprobe_instance *ri) in get_kretprobe() 256 static inline void arch_prepare_kretprobe(struct kretprobe *rp, in arch_prepare_kretprobe() 410 int register_kretprobe(struct kretprobe *r 148 handlerkretprobe global() argument 149 entry_handlerkretprobe global() argument 156 rphkretprobe global() argument [all...] |
H A D | trace_events.h | 595 bool kretprobe,
|
/linux/lib/tests/ |
H A D | test_kprobes.c | 193 static struct kretprobe rp = { 218 static struct kretprobe rp2 = { 226 struct kretprobe *rps[2] = {&rp, &rp2}; in test_kretprobes() 257 * Test stacktrace inside the kretprobe handler, this will involves in stacktrace_return_handler() 258 * kretprobe trampoline, but must include correct return address in stacktrace_return_handler() 283 static struct kretprobe rp3 = { 318 * Test stacktrace inside the kretprobe handler for nested case. in stacktrace_internal_return_handler() 320 * return address, and kretprobe must solve that. in stacktrace_internal_return_handler() 344 static struct kretprobe rp4 = { 352 struct kretprobe *rp in test_stacktrace_on_nested_kretprobe() [all...] |
/linux/tools/testing/selftests/bpf/benchs/ |
H A D | run_bench_trigger.sh | 10 kretprobe kretprobe-multi \
|
H A D | run_bench_rename.sh | 5 for i in base kprobe kretprobe rawtp fentry fexit
|
H A D | bench_trigger.c | 511 BENCH_TRIG_KERNEL(kretprobe, "kretprobe"); 513 BENCH_TRIG_KERNEL(kretprobe_multi, "kretprobe-multi");
|
/linux/Documentation/trace/ |
H A D | kprobes.rst | 58 a kretprobe. But if you're in a hurry to start using Kprobes, you 120 kretprobe, then sets the saved instruction pointer to the saved return 126 kretprobe struct to specify how many instances of the specified 137 some probes. In the kretprobe struct, the nmissed field is set to 147 field of the kretprobe struct. Whenever the kprobe placed by kretprobe at the 152 the kretprobe has no further effect for that particular function instance. 159 private data object can be specified at kretprobe registration time by 160 setting the data_size field of the kretprobe struct. This data can be 421 int register_kretprobe(struct kretprobe *r [all...] |
H A D | kprobetrace.rst | 10 this is based on kprobes (kprobe and kretprobe). So it can probe wherever 74 Function arguments at kretprobe 76 Function arguments can be accessed at kretprobe using $arg<N> fetcharg. This 213 This sets a kretprobe on the return point of do_sys_open() function with
|
H A D | events.rst | 617 kretprobe events. 628 - dynamically creating kprobe and kretprobe event definitions 947 7.3 Dyamically creating kprobe and kretprobe event definitions 950 To create a kprobe or kretprobe trace event from kernel code, the 991 or kretprobe command was started:: 1002 Similarly, a kretprobe event can be created using
|
H A D | fprobe.rst | 23 The fprobe is a wrapper of ftrace (+ kretprobe-like return callback) to
|
/linux/tools/bpf/bpftool/Documentation/ |
H A D | bpftool-perf.rst | 57 pid 21765 fd 5: prog_id 7 kretprobe func __x64_sys_nanosleep offset 0 67 {"pid":21765,"fd":5,"prog_id":7,"fd_type":"kretprobe","func":"__x64_sys_nanosleep","offset":0}, \
|
H A D | bpftool-prog.rst | 46 | **socket** | **kprobe** | **kretprobe** | **classifier** | **action** |
|
/linux/samples/kprobes/ |
H A D | kretprobe_example.c | 30 MODULE_PARM_DESC(func, "Function to kretprobe; this module will report the" 72 static struct kretprobe my_kretprobe = { 98 pr_info("kretprobe at %p unregistered\n", my_kretprobe.kp.addr); in kretprobe_exit()
|
/linux/arch/arm64/kernel/ |
H A D | stacktrace.c | 35 kretprobe : 1; member 45 * @kr_cur: When KRETPROBES is selected, holds the kretprobe instance 158 state->flags.kretprobe = 1; in kunwind_recover_return_address() 471 flags.kretprobe ? "K" : "", in dump_backtrace_entry()
|
/linux/Documentation/bpf/libbpf/ |
H A D | program_types.rst | 88 | | | ``kretprobe+`` [#kprobe]_ | | 106 | | | ``kretprobe.multi+`` [#kpmulti]_ | |
|
/linux/kernel/trace/ |
H A D | trace_kprobe.c | 61 struct kretprobe rp; /* Use rp.kp for kprobe use */ 843 * - Add kretprobe: in trace_kprobe_create_internal() 1046 /* entry handler for kretprobe */ in trace_kprobe_create_internal() 1135 * @kretprobe: Is this a return probe? 1155 int __kprobe_event_gen_cmd_start(struct dynevent_cmd *cmd, bool kretprobe, in __kprobe_event_gen_cmd_start() argument 1169 if (kretprobe) in __kprobe_event_gen_cmd_start() 1506 struct kretprobe *rp = get_kretprobe(ri); in trace_kprobe_entry_handler() 1511 * the kretprobe is unregister on another CPU between kretprobe's in trace_kprobe_entry_handler() 1833 struct kretprobe *r in kretprobe_dispatcher() [all...] |
/linux/arch/s390/lib/ |
H A D | test_unwind.c | 143 #define UWM_KRETPROBE_HANDLER 0x400 /* Unwind from kretprobe handler. */ 191 struct kretprobe my_kretprobe; in test_unwind_kretprobe()
|
/linux/arch/arm/probes/kprobes/ |
H A D | test-core.c | 378 static struct kretprobe the_kretprobe = { 401 pr_err("FAIL: kretprobe handler not called\n"); in test_kretprobe() 407 pr_err("FAIL: kretprobe called after unregistering\n"); in test_kretprobe() 423 pr_info(" kretprobe\n"); in run_api_tests()
|
/linux/tools/bpf/bpftool/bash-completion/ |
H A D | bpftool | 482 kretprobe classifier flow_dissector \
|
/linux/arch/ |
H A D | Kconfig | 249 stacktrace may see the kretprobe trampoline address instead
|
/linux/lib/ |
H A D | Kconfig.debug | 2345 boot. Samples of kprobe and kretprobe are inserted and
|