Remove the "trigger_count" in trigger_bench.c and reuse trigger_driver() instead for trigger_kernel_count_setup().
With the calling to bpf_get_numa_node_id(), the result for "kernel_count" will become a little more accurate.
It will also easier if we want to test the performance of livepatch, just hook the bpf_get_numa_node_id() and run the "kernel_count" bench trigger.
Signed-off-by: Menglong Dong dongml2@chinatelecom.cn --- .../selftests/bpf/benchs/bench_trigger.c | 5 +---- .../testing/selftests/bpf/progs/trigger_bench.c | 17 +++++------------ 2 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/tools/testing/selftests/bpf/benchs/bench_trigger.c b/tools/testing/selftests/bpf/benchs/bench_trigger.c index 1e2aff007c2a..34fd8fa3b803 100644 --- a/tools/testing/selftests/bpf/benchs/bench_trigger.c +++ b/tools/testing/selftests/bpf/benchs/bench_trigger.c @@ -179,11 +179,8 @@ static void trigger_syscall_count_setup(void) static void trigger_kernel_count_setup(void) { setup_ctx(); - bpf_program__set_autoload(ctx.skel->progs.trigger_driver, false); - bpf_program__set_autoload(ctx.skel->progs.trigger_count, true); + ctx.skel->rodata->kernel_count = 1; load_ctx(); - /* override driver program */ - ctx.driver_prog_fd = bpf_program__fd(ctx.skel->progs.trigger_count); }
static void trigger_kprobe_setup(void) diff --git a/tools/testing/selftests/bpf/progs/trigger_bench.c b/tools/testing/selftests/bpf/progs/trigger_bench.c index 3d5f30c29ae3..6564d1909c7b 100644 --- a/tools/testing/selftests/bpf/progs/trigger_bench.c +++ b/tools/testing/selftests/bpf/progs/trigger_bench.c @@ -39,26 +39,19 @@ int bench_trigger_uprobe_multi(void *ctx) return 0; }
+const volatile int kernel_count = 0; const volatile int batch_iters = 0;
-SEC("?raw_tp") -int trigger_count(void *ctx) -{ - int i; - - for (i = 0; i < batch_iters; i++) - inc_counter(); - - return 0; -} - SEC("?raw_tp") int trigger_driver(void *ctx) { int i;
- for (i = 0; i < batch_iters; i++) + for (i = 0; i < batch_iters; i++) { (void)bpf_get_numa_node_id(); /* attach point for benchmarking */ + if (kernel_count) + inc_counter(); + }
return 0; }
linux-kselftest-mirror@lists.linaro.org