Add a new benchmark for hashmap lookups and fix several typos. In commit 3 I've patched the bench utility so that now command line options can be reused by different benchmarks. The benchmark itself is added in the last commit 7. I was using this benchmark to test map lookup productivity when using a different hash function [1]. When run with --quiet, the results can be easily plotted [2]. The results provided by the benchmark look reasonable and match the results of my different benchmarks (requiring to patch kernel to get actual statistics on map lookups). Links: [1] https://fosdem.org/2023/schedule/event/bpf_hashing/ [2] https://github.com/aspsk/bpf-bench/tree/master/hashmap-bench Changes, v1->v2: - percpu_times_index[] is of wrong size (Martin) - use base 0 for strtol (Andrii) - just use -q without argument (Andrii) - use less hacks when parsing arguments (Andrii) Anton Protopopov (7): selftest/bpf/benchs: fix a typo in bpf_hashmap_full_update selftest/bpf/benchs: make a function static in bpf_hashmap_full_update selftest/bpf/benchs: enhance argp parsing selftest/bpf/benchs: remove an unused header selftest/bpf/benchs: make quiet option common selftest/bpf/benchs: print less if the quiet option is set selftest/bpf/benchs: Add benchmark for hashmap lookups tools/testing/selftests/bpf/Makefile | 5 +- tools/testing/selftests/bpf/bench.c | 59 +++- tools/testing/selftests/bpf/bench.h | 2 + .../bpf/benchs/bench_bloom_filter_map.c | 5 + .../benchs/bench_bpf_hashmap_full_update.c | 5 +- .../bpf/benchs/bench_bpf_hashmap_lookup.c | 283 ++++++++++++++++++ .../selftests/bpf/benchs/bench_bpf_loop.c | 1 + .../bpf/benchs/bench_local_storage.c | 3 + .../bench_local_storage_rcu_tasks_trace.c | 16 +- .../selftests/bpf/benchs/bench_ringbufs.c | 4 + .../selftests/bpf/benchs/bench_strncmp.c | 2 + .../run_bench_bpf_hashmap_full_update.sh | 2 +- ...run_bench_local_storage_rcu_tasks_trace.sh | 2 +- .../selftests/bpf/progs/bpf_hashmap_lookup.c | 63 ++++ 14 files changed, 420 insertions(+), 32 deletions(-) create mode 100644 tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.c create mode 100644 tools/testing/selftests/bpf/progs/bpf_hashmap_lookup.c -- 2.34.1