/linux-6.12.1/kernel/events/ |
D | uprobes.c | 57 struct uprobe { struct 85 struct uprobe *uprobe; argument 290 delayed_uprobe_check(struct uprobe *uprobe, struct mm_struct *mm) in delayed_uprobe_check() argument 295 if (du->uprobe == uprobe && du->mm == mm) in delayed_uprobe_check() 300 static int delayed_uprobe_add(struct uprobe *uprobe, struct mm_struct *mm) in delayed_uprobe_add() argument 304 if (delayed_uprobe_check(uprobe, mm)) in delayed_uprobe_add() 311 du->uprobe = uprobe; in delayed_uprobe_add() 325 static void delayed_uprobe_remove(struct uprobe *uprobe, struct mm_struct *mm) in delayed_uprobe_remove() argument 330 if (!uprobe && !mm) in delayed_uprobe_remove() 336 if (uprobe && du->uprobe != uprobe) in delayed_uprobe_remove() [all …]
|
/linux-6.12.1/include/linux/ |
D | uprobes.h | 19 struct uprobe; 77 struct uprobe *active_uprobe; 87 struct uprobe *uprobe; member 116 extern struct uprobe *uprobe_register(struct inode *inode, loff_t offset, loff_t ref_ctr_offset, st… 117 extern int uprobe_apply(struct uprobe *uprobe, struct uprobe_consumer *uc, bool); 118 extern void uprobe_unregister_nosync(struct uprobe *uprobe, struct uprobe_consumer *uc); 157 static inline struct uprobe * 163 uprobe_apply(struct uprobe* uprobe, struct uprobe_consumer *uc, bool add) in uprobe_apply() argument 168 uprobe_unregister_nosync(struct uprobe *uprobe, struct uprobe_consumer *uc) in uprobe_unregister_nosync() argument
|
/linux-6.12.1/tools/testing/selftests/bpf/bpf_testmod/ |
D | bpf_testmod.c | 475 struct uprobe *uprobe; member 481 static struct testmod_uprobe uprobe = { variable 489 if (uprobe.uprobe) in testmod_register_uprobe() 494 if (uprobe.uprobe) in testmod_register_uprobe() 497 err = kern_path("/proc/self/exe", LOOKUP_FOLLOW, &uprobe.path); in testmod_register_uprobe() 501 uprobe.uprobe = uprobe_register(d_real_inode(uprobe.path.dentry), in testmod_register_uprobe() 502 offset, 0, &uprobe.consumer); in testmod_register_uprobe() 503 if (IS_ERR(uprobe.uprobe)) { in testmod_register_uprobe() 504 err = PTR_ERR(uprobe.uprobe); in testmod_register_uprobe() 505 path_put(&uprobe.path); in testmod_register_uprobe() [all …]
|
/linux-6.12.1/Documentation/bpf/libbpf/ |
D | program_types.rst | 94 … | | ``uprobe+`` [#uprobe]_ … 96 … | | ``uprobe.s+`` [#uprobe]_ |… 98 … | | ``uretprobe+`` [#uprobe]_ | … 100 … | | ``uretprobe.s+`` [#uprobe]_ | Yes … 221 .. [#uprobe] The ``uprobe`` attach format is ``uprobe[.s]/<path>:<function>[+<offset>]``.
|
/linux-6.12.1/Documentation/trace/ |
D | uprobetracer.rst | 18 However unlike kprobe-event tracer, the uprobe event interface expects the 29 p[:[GRP/][EVENT]] PATH:OFFSET [FETCHARGS] : Set a uprobe 30 r[:[GRP/][EVENT]] PATH:OFFSET [FETCHARGS] : Set a return uprobe (uretprobe) 31 p[:[GRP/][EVENT]] PATH:OFFSET%return [FETCHARGS] : Set a return uprobe (uretprobe) 32 -:[GRP/][EVENT] : Clear uprobe or uretprobe event 58 (\*3) Unlike kprobe event, "u" prefix will just be ignored, because uprobe 87 * Add a probe as a new uprobe event, write a new definition to uprobe_events 88 as below (sets a uprobe at an offset of 0x4245c0 in the executable /bin/bash):: 118 0x00400000. Hence the command to uprobe would be:: 184 Output shows us uprobe was triggered for a pid 24842 with ip being 0x446420
|
/linux-6.12.1/kernel/trace/ |
D | trace_uprobe.c | 63 struct uprobe *uprobe; member 1108 struct uprobe *uprobe; in trace_uprobe_enable() local 1111 uprobe = uprobe_register(inode, tu->offset, tu->ref_ctr_offset, &tu->consumer); in trace_uprobe_enable() 1112 if (IS_ERR(uprobe)) in trace_uprobe_enable() 1113 return PTR_ERR(uprobe); in trace_uprobe_enable() 1115 tu->uprobe = uprobe; in trace_uprobe_enable() 1128 if (!tu->uprobe) in __probe_event_disable() 1131 uprobe_unregister_nosync(tu->uprobe, &tu->consumer); in __probe_event_disable() 1133 tu->uprobe = NULL; in __probe_event_disable() 1332 ret = uprobe_apply(tu->uprobe, &tu->consumer, false); in uprobe_perf_close() [all …]
|
D | bpf_trace.c | 3073 struct uprobe *uprobe; member 3089 struct bpf_uprobe *uprobe; member 3097 uprobe_unregister_nosync(uprobes[i].uprobe, &uprobes[i].consumer); in bpf_uprobe_unregister() 3196 static int uprobe_prog_run(struct bpf_uprobe *uprobe, in uprobe_prog_run() argument 3200 struct bpf_uprobe_multi_link *link = uprobe->link; in uprobe_prog_run() 3203 .uprobe = uprobe, in uprobe_prog_run() 3236 struct bpf_uprobe *uprobe; in uprobe_multi_link_filter() local 3238 uprobe = container_of(con, struct bpf_uprobe, consumer); in uprobe_multi_link_filter() 3239 return uprobe->link->task->mm == mm; in uprobe_multi_link_filter() 3245 struct bpf_uprobe *uprobe; in uprobe_multi_link_handler() local [all …]
|
/linux-6.12.1/tools/perf/tests/shell/ |
D | test_uprobe_from_different_cu.sh | 20 temp_dir=$(mktemp -d /tmp/perf-uprobe-different-cu-sh.XXXXXXXXXX) 25 if [[ "${temp_dir}" =~ ^/tmp/perf-uprobe-different-cu-sh.*$ ]]; then
|
/linux-6.12.1/tools/testing/selftests/bpf/prog_tests/ |
D | uprobe_multi_test.c | 267 skel->links.uprobe = bpf_program__attach_uprobe_multi(skel->progs.uprobe, pid, in __test_attach_api() 269 if (!ASSERT_OK_PTR(skel->links.uprobe, "bpf_program__attach_uprobe_multi")) in __test_attach_api() 564 skel->links.uprobe = bpf_program__attach_uprobe_multi(skel->progs.uprobe, -1, in attach_uprobe_fail_trap() 566 if (!ASSERT_ERR_PTR(skel->links.uprobe, "bpf_program__attach_uprobe_multi")) { in attach_uprobe_fail_trap() 567 bpf_link__destroy(skel->links.uprobe); in attach_uprobe_fail_trap() 568 skel->links.uprobe = NULL; in attach_uprobe_fail_trap() 677 prog_fd = bpf_program__fd(skel->progs.uprobe); in __test_link_api()
|
D | fill_link_info.c | 99 ASSERT_EQ(info.perf_event.uprobe.offset, offset, "uprobe_offset"); in verify_perf_link_info() 101 ASSERT_EQ(info.perf_event.uprobe.name_len, strlen(UPROBE_FILE) + 1, in verify_perf_link_info() 103 if (!info.perf_event.uprobe.file_name) { in verify_perf_link_info() 104 info.perf_event.uprobe.file_name = ptr_to_u64(&buf); in verify_perf_link_info() 105 info.perf_event.uprobe.name_len = sizeof(buf); in verify_perf_link_info() 109 ASSERT_EQ(info.perf_event.uprobe.cookie, PERF_EVENT_COOKIE, "uprobe_cookie"); in verify_perf_link_info() 111 err = strncmp(u64_to_ptr(info.perf_event.uprobe.file_name), UPROBE_FILE, in verify_perf_link_info()
|
D | bpf_cookie.c | 295 link1 = bpf_program__attach_uprobe_multi(skel->progs.uprobe, -1, in uprobe_multi_attach_api_subtest()
|
/linux-6.12.1/tools/bpf/bpftool/Documentation/ |
D | bpftool-perf.rst | 59 pid 21800 fd 5: prog_id 9 uprobe filename /home/yhs/a.out offset 1159 69 {"pid":21800,"fd":5,"prog_id":9,"fd_type":"uprobe","filename":"/home/yhs/a.out","offset":1159}]
|
/linux-6.12.1/tools/bpf/bpftool/ |
D | link.c | 380 u64_to_ptr(info->perf_event.uprobe.file_name)); in show_perf_event_uprobe_json() 381 jsonw_uint_field(wtr, "offset", info->perf_event.uprobe.offset); in show_perf_event_uprobe_json() 382 jsonw_uint_field(wtr, "cookie", info->perf_event.uprobe.cookie); in show_perf_event_uprobe_json() 815 buf = u64_to_ptr(info->perf_event.uprobe.file_name); in show_perf_event_uprobe_plain() 823 printf("%s+%#x ", buf, info->perf_event.uprobe.offset); in show_perf_event_uprobe_plain() 824 if (info->perf_event.uprobe.cookie) in show_perf_event_uprobe_plain() 825 printf("cookie %llu ", info->perf_event.uprobe.cookie); in show_perf_event_uprobe_plain() 1081 if (!info.perf_event.uprobe.file_name) { in do_show_link() 1082 info.perf_event.uprobe.file_name = ptr_to_u64(&buf); in do_show_link() 1083 info.perf_event.uprobe.name_len = sizeof(buf); in do_show_link()
|
/linux-6.12.1/tools/testing/selftests/bpf/benchs/ |
D | run_bench_uprobes.sh | 5 for i in usermode-count syscall-count {uprobe,uretprobe}-{nop,push,ret}
|
/linux-6.12.1/tools/testing/selftests/bpf/ |
D | uprobe_multi.c | 15 int __attribute__((weak)) uprobe(void) in uprobe() function 110 (void)uprobe(); in trigger_uprobe()
|
/linux-6.12.1/tools/perf/bench/ |
D | Build | 20 perf-bench-y += uprobe.o
|
/linux-6.12.1/tools/testing/selftests/bpf/progs/ |
D | uprobe_multi.c | 85 int uprobe(struct pt_regs *ctx) in uprobe() function
|
/linux-6.12.1/tools/perf/util/ |
D | probe-file.c | 74 static void print_open_warning(int err, bool uprobe, bool readwrite) in print_open_warning() argument 81 if (print_configure_probe_event(uprobe ? 0 : err, uprobe ? err : 0)) in print_open_warning() 85 tracing_path_mount(), uprobe ? 'u' : 'k', in print_open_warning()
|
D | probe-event.c | 900 bool uprobe, struct debuginfo *dinfo) in post_process_probe_trace_events() argument 904 if (uprobe) in post_process_probe_trace_events() 2891 static int __open_probe_file_and_namelist(bool uprobe, in __open_probe_file_and_namelist() argument 2896 fd = probe_file__open(PF_FL_RW | (uprobe ? PF_FL_UPROBE : 0)); in __open_probe_file_and_namelist()
|
/linux-6.12.1/tools/perf/Documentation/ |
D | perf-bench.txt | 70 'uprobe':: 71 Benchmark overhead of uprobe + BPF.
|
D | perf-buildid-cache.txt | 74 used when creating a uprobe for a process that resides in a
|
D | perf-probe.txt | 135 used when creating a uprobe for a process that resides in a 173 …p name by 'GROUP', if omitted, set 'probe' is used for kprobe and 'probe_<bin>' is used for uprobe. 281 Add a uprobe to a target process running in a different mount namespace
|
/linux-6.12.1/kernel/bpf/ |
D | syscall.c | 3652 uname = u64_to_user_ptr(info->perf_event.uprobe.file_name); in bpf_perf_link_fill_uprobe() 3653 ulen = info->perf_event.uprobe.name_len; in bpf_perf_link_fill_uprobe() 3663 info->perf_event.uprobe.name_len = ulen; in bpf_perf_link_fill_uprobe() 3664 info->perf_event.uprobe.offset = offset; in bpf_perf_link_fill_uprobe() 3665 info->perf_event.uprobe.cookie = event->bpf_cookie; in bpf_perf_link_fill_uprobe()
|
/linux-6.12.1/include/uapi/linux/ |
D | bpf.h | 6706 } uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */ member
|
/linux-6.12.1/tools/include/uapi/linux/ |
D | bpf.h | 6706 } uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */ member
|