Lines Matching +full:multi +full:- +full:function
1 // SPDX-License-Identifier: GPL-2.0
25 { "trig-batch-iters", ARG_TRIG_BATCH_ITERS, "BATCH_ITER_CNT", 0,
26 "Number of in-kernel iterations per one driver test run"},
38 fprintf(stderr, "invalid --trig-batch-iters value (should be between %d and %d)\n", in parse_arg()
59 #pragma GCC diagnostic ignored "-Wattributes"
119 int fd = ctx.driver_prog_fd ?: bpf_program__fd(ctx.skel->progs.trigger_driver); in trigger_producer_batch()
130 res->hits = sum_and_reset_counters(base_hits); in trigger_measure()
132 res->hits = sum_and_reset_counters(ctx.skel->bss->hits); in trigger_measure()
146 bpf_program__set_autoload(ctx.skel->progs.trigger_driver, true); in setup_ctx()
148 ctx.skel->rodata->batch_iters = args.batch_iters; in setup_ctx()
178 /* Batched, staying mostly in-kernel triggering setups */
182 bpf_program__set_autoload(ctx.skel->progs.trigger_driver, false); in trigger_kernel_count_setup()
183 bpf_program__set_autoload(ctx.skel->progs.trigger_count, true); in trigger_kernel_count_setup()
186 ctx.driver_prog_fd = bpf_program__fd(ctx.skel->progs.trigger_count); in trigger_kernel_count_setup()
192 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_kprobe, true); in trigger_kprobe_setup()
194 attach_bpf(ctx.skel->progs.bench_trigger_kprobe); in trigger_kprobe_setup()
200 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_kretprobe, true); in trigger_kretprobe_setup()
202 attach_bpf(ctx.skel->progs.bench_trigger_kretprobe); in trigger_kretprobe_setup()
208 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_kprobe_multi, true); in trigger_kprobe_multi_setup()
210 attach_bpf(ctx.skel->progs.bench_trigger_kprobe_multi); in trigger_kprobe_multi_setup()
216 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_kretprobe_multi, true); in trigger_kretprobe_multi_setup()
218 attach_bpf(ctx.skel->progs.bench_trigger_kretprobe_multi); in trigger_kretprobe_multi_setup()
224 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_fentry, true); in trigger_fentry_setup()
226 attach_bpf(ctx.skel->progs.bench_trigger_fentry); in trigger_fentry_setup()
232 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_fexit, true); in trigger_fexit_setup()
234 attach_bpf(ctx.skel->progs.bench_trigger_fexit); in trigger_fexit_setup()
240 bpf_program__set_autoload(ctx.skel->progs.trigger_driver, false); in trigger_fmodret_setup()
241 bpf_program__set_autoload(ctx.skel->progs.trigger_driver_kfunc, true); in trigger_fmodret_setup()
242 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_fmodret, true); in trigger_fmodret_setup()
245 ctx.driver_prog_fd = bpf_program__fd(ctx.skel->progs.trigger_driver_kfunc); in trigger_fmodret_setup()
246 attach_bpf(ctx.skel->progs.bench_trigger_fmodret); in trigger_fmodret_setup()
252 bpf_program__set_autoload(ctx.skel->progs.trigger_driver, false); in trigger_tp_setup()
253 bpf_program__set_autoload(ctx.skel->progs.trigger_driver_kfunc, true); in trigger_tp_setup()
254 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_tp, true); in trigger_tp_setup()
257 ctx.driver_prog_fd = bpf_program__fd(ctx.skel->progs.trigger_driver_kfunc); in trigger_tp_setup()
258 attach_bpf(ctx.skel->progs.bench_trigger_tp); in trigger_tp_setup()
264 bpf_program__set_autoload(ctx.skel->progs.trigger_driver, false); in trigger_rawtp_setup()
265 bpf_program__set_autoload(ctx.skel->progs.trigger_driver_kfunc, true); in trigger_rawtp_setup()
266 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_rawtp, true); in trigger_rawtp_setup()
269 ctx.driver_prog_fd = bpf_program__fd(ctx.skel->progs.trigger_driver_kfunc); in trigger_rawtp_setup()
270 attach_bpf(ctx.skel->progs.bench_trigger_rawtp); in trigger_rawtp_setup()
274 * inline asm volatile in the body of the function
294 /* overhead of function call is negligible compared to uprobe in uprobe_target_push()
351 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_uprobe_multi, true); in usetup()
353 bpf_program__set_autoload(ctx.skel->progs.bench_trigger_uprobe, true); in usetup()
369 ctx.skel->progs.bench_trigger_uprobe_multi, in usetup()
370 -1 /* all PIDs */, "/proc/self/exe", NULL, &opts); in usetup()
371 ctx.skel->links.bench_trigger_uprobe_multi = link; in usetup()
373 link = bpf_program__attach_uprobe(ctx.skel->progs.bench_trigger_uprobe, in usetup()
375 -1 /* all PIDs */, in usetup()
378 ctx.skel->links.bench_trigger_uprobe = link; in usetup()
381 fprintf(stderr, "failed to attach %s!\n", use_multi ? "multi-uprobe" : "uprobe"); in usetup()
452 .name = "trig-syscall-count",
464 .name = "trig-" NAME, \
473 BENCH_TRIG_KERNEL(kernel_count, "kernel-count");
476 BENCH_TRIG_KERNEL(kprobe_multi, "kprobe-multi");
477 BENCH_TRIG_KERNEL(kretprobe_multi, "kretprobe-multi");
487 .name = "trig-" NAME, \
496 BENCH_TRIG_USERMODE(usermode_count, count, "usermode-count");
497 BENCH_TRIG_USERMODE(uprobe_nop, nop, "uprobe-nop");
498 BENCH_TRIG_USERMODE(uprobe_push, push, "uprobe-push");
499 BENCH_TRIG_USERMODE(uprobe_ret, ret, "uprobe-ret");
500 BENCH_TRIG_USERMODE(uretprobe_nop, nop, "uretprobe-nop");
501 BENCH_TRIG_USERMODE(uretprobe_push, push, "uretprobe-push");
502 BENCH_TRIG_USERMODE(uretprobe_ret, ret, "uretprobe-ret");
503 BENCH_TRIG_USERMODE(uprobe_multi_nop, nop, "uprobe-multi-nop");
504 BENCH_TRIG_USERMODE(uprobe_multi_push, push, "uprobe-multi-push");
505 BENCH_TRIG_USERMODE(uprobe_multi_ret, ret, "uprobe-multi-ret");
506 BENCH_TRIG_USERMODE(uretprobe_multi_nop, nop, "uretprobe-multi-nop");
507 BENCH_TRIG_USERMODE(uretprobe_multi_push, push, "uretprobe-multi-push");
508 BENCH_TRIG_USERMODE(uretprobe_multi_ret, ret, "uretprobe-multi-ret");