selftest/bpf/benchs: Make quiet option common
authorAnton Protopopov <aspsk@isovalent.com>
Mon, 13 Feb 2023 09:15:17 +0000 (09:15 +0000)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 16 Feb 2023 00:29:31 +0000 (16:29 -0800)
The "local-storage-tasks-trace" benchmark has a `--quiet` option. Move it to
the list of common options, so that the main code and other benchmarks can use
(new) env.quiet variable. Patch the run_bench_local_storage_rcu_tasks_trace.sh
helper script accordingly.

Signed-off-by: Anton Protopopov <aspsk@isovalent.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20230213091519.1202813-6-aspsk@isovalent.com
tools/testing/selftests/bpf/bench.c
tools/testing/selftests/bpf/bench.h
tools/testing/selftests/bpf/benchs/bench_local_storage_rcu_tasks_trace.c
tools/testing/selftests/bpf/benchs/run_bench_local_storage_rcu_tasks_trace.sh

index 12c3b3ab84aab2c7f06749c4dc1658fa55a8ff30..23c24c3461307639abdcac8c0dccab4f04799c58 100644 (file)
@@ -16,6 +16,7 @@ struct env env = {
        .warmup_sec = 1,
        .duration_sec = 5,
        .affinity = false,
+       .quiet = false,
        .consumer_cnt = 1,
        .producer_cnt = 1,
 };
@@ -262,6 +263,7 @@ static const struct argp_option opts[] = {
        { "consumers", 'c', "NUM", 0, "Number of consumer threads"},
        { "verbose", 'v', NULL, 0, "Verbose debug output"},
        { "affinity", 'a', NULL, 0, "Set consumer/producer thread affinity"},
+       { "quiet", 'q', NULL, 0, "Be more quiet"},
        { "prod-affinity", ARG_PROD_AFFINITY_SET, "CPUSET", 0,
          "Set of CPUs for producer threads; implies --affinity"},
        { "cons-affinity", ARG_CONS_AFFINITY_SET, "CPUSET", 0,
@@ -330,6 +332,9 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
        case 'a':
                env.affinity = true;
                break;
+       case 'q':
+               env.quiet = true;
+               break;
        case ARG_PROD_AFFINITY_SET:
                env.affinity = true;
                if (parse_num_list(arg, &env.prod_cpus.cpus,
index 3c8afa0131a3aabe184835448dde367275f634a8..402729c6a3ac50fe5a094866610672e823ee84ad 100644 (file)
@@ -24,6 +24,7 @@ struct env {
        bool verbose;
        bool list;
        bool affinity;
+       bool quiet;
        int consumer_cnt;
        int producer_cnt;
        struct cpu_set prod_cpus;
index 4f9401ecf09ce725fd4407373e6041e344717a01..d5eb5587f2aa9eae2a80d61ebcb2ba0a037cbe33 100644 (file)
 static struct {
        __u32 nr_procs;
        __u32 kthread_pid;
-       bool quiet;
 } args = {
        .nr_procs = 1000,
        .kthread_pid = 0,
-       .quiet = false,
 };
 
 enum {
        ARG_NR_PROCS = 7000,
        ARG_KTHREAD_PID = 7001,
-       ARG_QUIET = 7002,
 };
 
 static const struct argp_option opts[] = {
@@ -30,8 +27,6 @@ static const struct argp_option opts[] = {
                "Set number of user processes to spin up"},
        { "kthread_pid", ARG_KTHREAD_PID, "PID", 0,
                "Pid of rcu_tasks_trace kthread for ticks tracking"},
-       { "quiet", ARG_QUIET, "{0,1}", 0,
-               "If true, don't report progress"},
        {},
 };
 
@@ -56,14 +51,6 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
                }
                args.kthread_pid = ret;
                break;
-       case ARG_QUIET:
-               ret = strtol(arg, NULL, 10);
-               if (ret < 0 || ret > 1) {
-                       fprintf(stderr, "invalid quiet %ld\n", ret);
-                       argp_usage(state);
-               }
-               args.quiet = ret;
-               break;
 break;
        default:
                return ARGP_ERR_UNKNOWN;
@@ -230,7 +217,7 @@ static void report_progress(int iter, struct bench_res *res, long delta_ns)
                exit(1);
        }
 
-       if (args.quiet)
+       if (env.quiet)
                return;
 
        printf("Iter %d\t avg tasks_trace grace period latency\t%lf ns\n",
index 5dac1f02892cf75d95b3b48dfad859a48a562154..3e8a969f20967dd9a6caccbe933d1b1f621a99de 100755 (executable)
@@ -8,4 +8,4 @@ if [ -z $kthread_pid ]; then
        exit 1
 fi
 
-./bench --nr_procs 15000 --kthread_pid $kthread_pid -d 600 --quiet local-storage-tasks-trace
+./bench --nr_procs 15000 --kthread_pid $kthread_pid -d 600 --quiet local-storage-tasks-trace