On 24/04/2024 23:43, Martin KaFai Lau wrote:
On 4/22/24 3:50 PM, Vadim Fedorenko wrote:
diff --git a/tools/testing/selftests/bpf/benchs/bench_bpf_crypto.c
b/tools/testing/selftests/bpf/benchs/bench_bpf_crypto.c
new file mode 100644
index 000000000000..0b8c1f2fe7e6
--- /dev/null
+++ b/tools/testing/selftests/bpf/benchs/bench_bpf_crypto.c
@@ -0,0 +1,185 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2024 Meta Platforms, Inc. and affiliates. */
+
+#include <argp.h>
+#include "bench.h"
+#include "crypto_bench.skel.h"
+
+#define MAX_CIPHER_LEN 32
+static char *input;
[ ... ]
+static void *crypto_producer(void *input)
The bench result has all 0s in the output:
$> ./bench -p 4 crypto-decrypt
Setting up benchmark 'crypto-decrypt'...
Benchmark 'crypto-decrypt' started.
Iter 0 (209.082us): hits 0.000M/s ( 0.000M/prod), drops
0.000M/s, total operations 0.000M/s
Iter 1 (154.618us): hits 0.000M/s ( 0.000M/prod), drops
0.000M/s, total operations 0.000M/s
Iter 2 (-36.658us): hits 0.000M/s ( 0.000M/prod), drops
0.000M/s, total operations 0.000M/s
This "void *input" arg shadowed the global variable.
Got it. Will do re-spin then...
+{
+ LIBBPF_OPTS(bpf_test_run_opts, opts,
+ .repeat = 64,
+ .data_in = input,
+ .data_size_in = args.crypto_len,
+ );
+
+ while (true)
+ (void)bpf_prog_test_run_opts(ctx.pfd, &opts);
+ return NULL;
+}