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 <davidl...@hp.com> > --- > 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/