mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
perf bench: Harmonize all the -l/--nr_loops options
We have three benchmarking subsystems that specify some sort of 'number of loops' parameter - but all of them do it inconsistently: numa: -l/--nr_loops sched messaging: -l/--loops mem memset/memcpy: -i/--iterations Harmonize them to -l/--nr_loops by picking the numa variant - which is also the most likely one to have existing scripting which we don't want to break. Plus improve the parameter help texts to indicate the default value for the nr_loops variable to keep users from guessing ... Also propagate the naming to internal variables. Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: David Ahern <dsahern@gmail.com> Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1445241870-24854-13-git-send-email-mingo@kernel.org [ Let the harmonisation reach the perf-bench man page as well ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
5dd93304a5
commit
b0d22e52e3
4 changed files with 23 additions and 23 deletions
|
@ -25,20 +25,20 @@
|
|||
|
||||
static const char *size_str = "1MB";
|
||||
static const char *routine_str = "all";
|
||||
static int iterations = 1;
|
||||
static int nr_loops = 1;
|
||||
static bool use_cycles;
|
||||
static int cycles_fd;
|
||||
|
||||
static const struct option options[] = {
|
||||
OPT_STRING('l', "size", &size_str, "1MB",
|
||||
OPT_STRING('s', "size", &size_str, "1MB",
|
||||
"Specify the size of the memory buffers. "
|
||||
"Available units: B, KB, MB, GB and TB (case insensitive)"),
|
||||
|
||||
OPT_STRING('r', "routine", &routine_str, "all",
|
||||
"Specify the routine to run, \"all\" runs all available routines, \"help\" lists them"),
|
||||
|
||||
OPT_INTEGER('i', "iterations", &iterations,
|
||||
"Repeat the function this number of times"),
|
||||
OPT_INTEGER('l', "nr_loops", &nr_loops,
|
||||
"Specify the number of loops to run. (default: 1)"),
|
||||
|
||||
OPT_BOOLEAN('c', "cycles", &use_cycles,
|
||||
"Use a cycles event instead of gettimeofday() to measure performance"),
|
||||
|
@ -159,7 +159,7 @@ static int bench_mem_common(int argc, const char **argv, struct bench_mem_info *
|
|||
init_cycles();
|
||||
|
||||
size = (size_t)perf_atoll((char *)size_str);
|
||||
size_total = (double)size * iterations;
|
||||
size_total = (double)size * nr_loops;
|
||||
|
||||
if ((s64)size <= 0) {
|
||||
fprintf(stderr, "Invalid size:%s\n", size_str);
|
||||
|
@ -222,7 +222,7 @@ static u64 do_memcpy_cycles(const struct routine *r, size_t size)
|
|||
fn(dst, src, size);
|
||||
|
||||
cycle_start = get_cycles();
|
||||
for (i = 0; i < iterations; ++i)
|
||||
for (i = 0; i < nr_loops; ++i)
|
||||
fn(dst, src, size);
|
||||
cycle_end = get_cycles();
|
||||
|
||||
|
@ -247,7 +247,7 @@ static double do_memcpy_gettimeofday(const struct routine *r, size_t size)
|
|||
fn(dst, src, size);
|
||||
|
||||
BUG_ON(gettimeofday(&tv_start, NULL));
|
||||
for (i = 0; i < iterations; ++i)
|
||||
for (i = 0; i < nr_loops; ++i)
|
||||
fn(dst, src, size);
|
||||
BUG_ON(gettimeofday(&tv_end, NULL));
|
||||
|
||||
|
@ -256,7 +256,7 @@ static double do_memcpy_gettimeofday(const struct routine *r, size_t size)
|
|||
free(src);
|
||||
free(dst);
|
||||
|
||||
return (double)(((double)size * iterations) / timeval2double(&tv_diff));
|
||||
return (double)(((double)size * nr_loops) / timeval2double(&tv_diff));
|
||||
}
|
||||
|
||||
struct routine memcpy_routines[] = {
|
||||
|
@ -313,7 +313,7 @@ static u64 do_memset_cycles(const struct routine *r, size_t size)
|
|||
fn(dst, -1, size);
|
||||
|
||||
cycle_start = get_cycles();
|
||||
for (i = 0; i < iterations; ++i)
|
||||
for (i = 0; i < nr_loops; ++i)
|
||||
fn(dst, i, size);
|
||||
cycle_end = get_cycles();
|
||||
|
||||
|
@ -337,14 +337,14 @@ static double do_memset_gettimeofday(const struct routine *r, size_t size)
|
|||
fn(dst, -1, size);
|
||||
|
||||
BUG_ON(gettimeofday(&tv_start, NULL));
|
||||
for (i = 0; i < iterations; ++i)
|
||||
for (i = 0; i < nr_loops; ++i)
|
||||
fn(dst, i, size);
|
||||
BUG_ON(gettimeofday(&tv_end, NULL));
|
||||
|
||||
timersub(&tv_end, &tv_start, &tv_diff);
|
||||
|
||||
free(dst);
|
||||
return (double)(((double)size * iterations) / timeval2double(&tv_diff));
|
||||
return (double)(((double)size * nr_loops) / timeval2double(&tv_diff));
|
||||
}
|
||||
|
||||
static const char * const bench_mem_memset_usage[] = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue