Re: [PATCH 1/9] perf bench: Add --repeat option

From: Namhyung Kim
Date: Thu Jun 19 2014 - 02:14:55 EST


Hi Davidlohr,

On Mon, 16 Jun 2014 11:14:19 -0700, Davidlohr Bueso wrote:
> There are a number of benchmarks that do single runs and
> as a result does not really help users gain a general idea
> of how the workload performs. So the user must either manually
> do multiple runs or just use single bogus results.
>
> This option will enable users to specify the amount of runs
> (arbitrarily defaulted to 5) through the '--repeat' option.
> Add it to perf-bench instead of implementing it always in
> each specific benchmark.

By adding a top-level option, I think it should be applied to all
benchmaks - but I guess it only supports sched messaging and futex,
right?

Also it makes benchmarks to run 5 times (by default) even if the option
is not given at all, is that your intention?

Thanks,
Namhyung


>
> Signed-off-by: Davidlohr Bueso <davidlohr@xxxxxx>
> ---
> tools/perf/Documentation/perf-bench.txt | 4 ++++
> tools/perf/bench/bench.h | 1 +
> tools/perf/builtin-bench.c | 7 +++++++
> 3 files changed, 12 insertions(+)
>
> diff --git a/tools/perf/Documentation/perf-bench.txt b/tools/perf/Documentation/perf-bench.txt
> index 4464ad7..fd70928 100644
> --- a/tools/perf/Documentation/perf-bench.txt
> +++ b/tools/perf/Documentation/perf-bench.txt
> @@ -16,6 +16,10 @@ This 'perf bench' command is a general framework for benchmark suites.
>
> COMMON OPTIONS
> --------------
> +-r::
> +--repeat=::
> +Specify amount of times to repeat the run (default 5).
> +
> -f::
> --format=::
> Specify format style.
> diff --git a/tools/perf/bench/bench.h b/tools/perf/bench/bench.h
> index eba4670..3c4dd44 100644
> --- a/tools/perf/bench/bench.h
> +++ b/tools/perf/bench/bench.h
> @@ -43,5 +43,6 @@ extern int bench_futex_requeue(int argc, const char **argv, const char *prefix);
> #define BENCH_FORMAT_UNKNOWN -1
>
> extern int bench_format;
> +extern unsigned int bench_repeat;
>
> #endif
> diff --git a/tools/perf/builtin-bench.c b/tools/perf/builtin-bench.c
> index 1e6e777..820da6e 100644
> --- a/tools/perf/builtin-bench.c
> +++ b/tools/perf/builtin-bench.c
> @@ -104,9 +104,11 @@ static const char *bench_format_str;
>
> /* Output/formatting style, exported to benchmark modules: */
> int bench_format = BENCH_FORMAT_DEFAULT;
> +unsigned int bench_repeat = 5; /* default number of times to repeat the run */
>
> static const struct option bench_options[] = {
> OPT_STRING('f', "format", &bench_format_str, "default", "Specify format style"),
> + OPT_UINTEGER('r', "repeat", &bench_repeat, "Specify amount of times to repeat the run"),
> OPT_END()
> };
>
> @@ -226,6 +228,11 @@ int cmd_bench(int argc, const char **argv, const char *prefix __maybe_unused)
> goto end;
> }
>
> + if (bench_repeat == 0) {
> + printf("Invalid repeat option: Must specify a positive value\n");
> + goto end;
> + }
> +
> if (argc < 1) {
> print_usage();
> goto end;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/