bench.c (7df4e597ea2cfd677e65730948153d5544986a10) bench.c (208c4391204d25d9178fbc87f216daffad00cd15)
1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2020 Facebook */
3#define _GNU_SOURCE
4#include <argp.h>
5#include <linux/compiler.h>
6#include <sys/time.h>
7#include <sched.h>
8#include <fcntl.h>

--- 482 unchanged lines hidden (view full) ---

491extern const struct bench bench_rename_kprobe;
492extern const struct bench bench_rename_kretprobe;
493extern const struct bench bench_rename_rawtp;
494extern const struct bench bench_rename_fentry;
495extern const struct bench bench_rename_fexit;
496
497/* pure counting benchmarks to establish theoretical lmits */
498extern const struct bench bench_trig_usermode_count;
1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2020 Facebook */
3#define _GNU_SOURCE
4#include <argp.h>
5#include <linux/compiler.h>
6#include <sys/time.h>
7#include <sched.h>
8#include <fcntl.h>

--- 482 unchanged lines hidden (view full) ---

491extern const struct bench bench_rename_kprobe;
492extern const struct bench bench_rename_kretprobe;
493extern const struct bench bench_rename_rawtp;
494extern const struct bench bench_rename_fentry;
495extern const struct bench bench_rename_fexit;
496
497/* pure counting benchmarks to establish theoretical lmits */
498extern const struct bench bench_trig_usermode_count;
499extern const struct bench bench_trig_base;
499extern const struct bench bench_trig_syscall_count;
500extern const struct bench bench_trig_kernel_count;
500
501
501/* kernel-side syscall-triggered benchmarks */
502extern const struct bench bench_trig_tp;
503extern const struct bench bench_trig_rawtp;
502/* batched, staying mostly in-kernel benchmarks */
504extern const struct bench bench_trig_kprobe;
505extern const struct bench bench_trig_kretprobe;
506extern const struct bench bench_trig_kprobe_multi;
507extern const struct bench bench_trig_kretprobe_multi;
508extern const struct bench bench_trig_fentry;
509extern const struct bench bench_trig_fexit;
503extern const struct bench bench_trig_kprobe;
504extern const struct bench bench_trig_kretprobe;
505extern const struct bench bench_trig_kprobe_multi;
506extern const struct bench bench_trig_kretprobe_multi;
507extern const struct bench bench_trig_fentry;
508extern const struct bench bench_trig_fexit;
510extern const struct bench bench_trig_fentry_sleep;
511extern const struct bench bench_trig_fmodret;
512
509
513/* batched, staying mostly in-kernel benchmarks */
514extern const struct bench bench_trig_kernel_count;
515extern const struct bench bench_trig_kprobe_batch;
516extern const struct bench bench_trig_kretprobe_batch;
517extern const struct bench bench_trig_kprobe_multi_batch;
518extern const struct bench bench_trig_kretprobe_multi_batch;
519extern const struct bench bench_trig_fentry_batch;
520extern const struct bench bench_trig_fexit_batch;
521
522/* uprobe/uretprobe benchmarks */
523extern const struct bench bench_trig_uprobe_nop;
524extern const struct bench bench_trig_uretprobe_nop;
525extern const struct bench bench_trig_uprobe_push;
526extern const struct bench bench_trig_uretprobe_push;
527extern const struct bench bench_trig_uprobe_ret;
528extern const struct bench bench_trig_uretprobe_ret;
529

--- 25 unchanged lines hidden (view full) ---

555 &bench_rename_kprobe,
556 &bench_rename_kretprobe,
557 &bench_rename_rawtp,
558 &bench_rename_fentry,
559 &bench_rename_fexit,
560 /* pure counting benchmarks for establishing theoretical limits */
561 &bench_trig_usermode_count,
562 &bench_trig_kernel_count,
510/* uprobe/uretprobe benchmarks */
511extern const struct bench bench_trig_uprobe_nop;
512extern const struct bench bench_trig_uretprobe_nop;
513extern const struct bench bench_trig_uprobe_push;
514extern const struct bench bench_trig_uretprobe_push;
515extern const struct bench bench_trig_uprobe_ret;
516extern const struct bench bench_trig_uretprobe_ret;
517

--- 25 unchanged lines hidden (view full) ---

543 &bench_rename_kprobe,
544 &bench_rename_kretprobe,
545 &bench_rename_rawtp,
546 &bench_rename_fentry,
547 &bench_rename_fexit,
548 /* pure counting benchmarks for establishing theoretical limits */
549 &bench_trig_usermode_count,
550 &bench_trig_kernel_count,
563 /* syscall-driven triggering benchmarks */
564 &bench_trig_tp,
565 &bench_trig_rawtp,
551 &bench_trig_syscall_count,
552 /* batched, staying mostly in-kernel triggers */
566 &bench_trig_kprobe,
567 &bench_trig_kretprobe,
568 &bench_trig_kprobe_multi,
569 &bench_trig_kretprobe_multi,
570 &bench_trig_fentry,
571 &bench_trig_fexit,
553 &bench_trig_kprobe,
554 &bench_trig_kretprobe,
555 &bench_trig_kprobe_multi,
556 &bench_trig_kretprobe_multi,
557 &bench_trig_fentry,
558 &bench_trig_fexit,
572 &bench_trig_fentry_sleep,
573 &bench_trig_fmodret,
574 /* batched, staying mostly in-kernel triggers */
575 &bench_trig_kprobe_batch,
576 &bench_trig_kretprobe_batch,
577 &bench_trig_kprobe_multi_batch,
578 &bench_trig_kretprobe_multi_batch,
579 &bench_trig_fentry_batch,
580 &bench_trig_fexit_batch,
581 /* uprobes */
582 &bench_trig_uprobe_nop,
583 &bench_trig_uretprobe_nop,
584 &bench_trig_uprobe_push,
585 &bench_trig_uretprobe_push,
586 &bench_trig_uprobe_ret,
587 &bench_trig_uretprobe_ret,
588 /* ringbuf/perfbuf benchmarks */

--- 157 unchanged lines hidden ---
559 /* uprobes */
560 &bench_trig_uprobe_nop,
561 &bench_trig_uretprobe_nop,
562 &bench_trig_uprobe_push,
563 &bench_trig_uretprobe_push,
564 &bench_trig_uprobe_ret,
565 &bench_trig_uretprobe_ret,
566 /* ringbuf/perfbuf benchmarks */

--- 157 unchanged lines hidden ---