Add generic benchmark runner framework which simplifies writing various performance benchmarks in a consistent fashion. This framework will be used in follow up patches to test performance of perf buffer and ring buffer as well. Patch #1 adds generic runner implementation and atomic counter benchmarks to validate benchmark runner's behavior. Patch #2 implements test_overhead benchmark as part of bench runner. It also add fmod_ret BPF program type to a set of benchmarks. Patch #3 tests faster alternatives to set_task_comm() approach, tested in test_overhead, in search for minimal-overhead way to trigger BPF program execution from user-space on demand. v1->v2: - moved benchmarks into benchs/ subdir (John); - added benchmark "suite" scripts (John); - few small clean ups, change defaults, etc. Andrii Nakryiko (3): selftests/bpf: add benchmark runner infrastructure selftest/bpf: fmod_ret prog and implement test_overhead as part of bench selftest/bpf: add BPF triggering benchmark tools/testing/selftests/bpf/.gitignore | 1 + tools/testing/selftests/bpf/Makefile | 17 +- tools/testing/selftests/bpf/bench.c | 398 ++++++++++++++++++ tools/testing/selftests/bpf/bench.h | 74 ++++ .../selftests/bpf/benchs/bench_count.c | 91 ++++ .../selftests/bpf/benchs/bench_rename.c | 195 +++++++++ .../selftests/bpf/benchs/bench_trigger.c | 167 ++++++++ .../selftests/bpf/benchs/run_bench_rename.sh | 9 + .../selftests/bpf/benchs/run_bench_trigger.sh | 9 + .../selftests/bpf/prog_tests/test_overhead.c | 14 +- .../selftests/bpf/progs/test_overhead.c | 6 + .../selftests/bpf/progs/trigger_bench.c | 47 +++ 12 files changed, 1026 insertions(+), 2 deletions(-) create mode 100644 tools/testing/selftests/bpf/bench.c create mode 100644 tools/testing/selftests/bpf/bench.h create mode 100644 tools/testing/selftests/bpf/benchs/bench_count.c create mode 100644 tools/testing/selftests/bpf/benchs/bench_rename.c create mode 100644 tools/testing/selftests/bpf/benchs/bench_trigger.c create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_rename.sh create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_trigger.sh create mode 100644 tools/testing/selftests/bpf/progs/trigger_bench.c -- 2.24.1