Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1250419

[PATCH 12/14] perf/bench: Harmonize all the -l/--nr_loops options

From Ingo Molnar <mingo@kernel.org>
Newsgroups linux.kernel
Subject [PATCH 12/14] perf/bench: Harmonize all the -l/--nr_loops options
Date 2015-10-19 10:10 +0200
Message-ID <qldG1-6ST-9@gated-at.bofh.it> (permalink)
References <qldG1-6ST-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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.

Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
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>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 tools/perf/bench/mem-functions.c   | 22 +++++++++++-----------
 tools/perf/bench/numa.c            |  4 ++--
 tools/perf/bench/sched-messaging.c | 10 +++++-----
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functions.c
index f701b5b56079..65e7297de4b1 100644
--- a/tools/perf/bench/mem-functions.c
+++ b/tools/perf/bench/mem-functions.c
@@ -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[] = {
diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c
index 870b7e665a20..492df2752a2d 100644
--- a/tools/perf/bench/numa.c
+++ b/tools/perf/bench/numa.c
@@ -164,8 +164,8 @@ static const struct option options[] = {
 	OPT_STRING('L', "mb_proc_locked", &p0.mb_proc_locked_str,"MB", "process serialized/locked memory access (MBs), <= process_memory"),
 	OPT_STRING('T', "mb_thread"	, &p0.mb_thread_str,	"MB", "thread  memory (MBs)"),
 
-	OPT_UINTEGER('l', "nr_loops"	, &p0.nr_loops,		"max number of loops to run"),
-	OPT_UINTEGER('s', "nr_secs"	, &p0.nr_secs,		"max number of seconds to run"),
+	OPT_UINTEGER('l', "nr_loops"	, &p0.nr_loops,		"max number of loops to run (default: unlimited)"),
+	OPT_UINTEGER('s', "nr_secs"	, &p0.nr_secs,		"max number of seconds to run (default: 5 secs)"),
 	OPT_UINTEGER('u', "usleep"	, &p0.sleep_usecs,	"usecs to sleep per loop iteration"),
 
 	OPT_BOOLEAN('R', "data_reads"	, &p0.data_reads,	"access the data via writes (can be mixed with -W)"),
diff --git a/tools/perf/bench/sched-messaging.c b/tools/perf/bench/sched-messaging.c
index d7f281c2828d..d4ff1b539cfd 100644
--- a/tools/perf/bench/sched-messaging.c
+++ b/tools/perf/bench/sched-messaging.c
@@ -33,7 +33,7 @@
 #define DATASIZE 100
 
 static bool use_pipes = false;
-static unsigned int loops = 100;
+static unsigned int nr_loops = 100;
 static bool thread_mode = false;
 static unsigned int num_groups = 10;
 
@@ -79,7 +79,7 @@ static void ready(int ready_out, int wakefd)
 		err(EXIT_FAILURE, "poll");
 }
 
-/* Sender sprays loops messages down each file descriptor */
+/* Sender sprays nr_loops messages down each file descriptor */
 static void *sender(struct sender_context *ctx)
 {
 	char data[DATASIZE];
@@ -88,7 +88,7 @@ static void *sender(struct sender_context *ctx)
 	ready(ctx->ready_out, ctx->wakefd);
 
 	/* Now pump to every receiver. */
-	for (i = 0; i < loops; i++) {
+	for (i = 0; i < nr_loops; i++) {
 		for (j = 0; j < ctx->num_fds; j++) {
 			int ret, done = 0;
 
@@ -213,7 +213,7 @@ static unsigned int group(pthread_t *pth,
 		/* Create the pipe between client and server */
 		fdpair(fds);
 
-		ctx->num_packets = num_fds * loops;
+		ctx->num_packets = num_fds * nr_loops;
 		ctx->in_fds[0] = fds[0];
 		ctx->in_fds[1] = fds[1];
 		ctx->ready_out = ready_out;
@@ -250,7 +250,7 @@ static const struct option options[] = {
 	OPT_BOOLEAN('t', "thread", &thread_mode,
 		    "Be multi thread instead of multi process"),
 	OPT_UINTEGER('g', "group", &num_groups, "Specify number of groups"),
-	OPT_UINTEGER('l', "loop", &loops, "Specify number of loops"),
+	OPT_UINTEGER('l', "nr_loops", &nr_loops, "Specify the number of loops to run (default: 100)"),
 	OPT_END()
 };
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/14] perf bench: Misc improvements Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
  [PATCH 12/14] perf/bench: Harmonize all the -l/--nr_loops options Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    [tip:perf/core] perf bench: Harmonize all the -l/  --nr_loops options tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 09/14] perf/bench/mem: Fix 'length' vs. 'size' naming confusion Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    [tip:perf/core] perf bench mem: Fix 'length' vs. 'size'   naming confusion tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 07/14] perf/bench/mem: Change 'cycle' to 'cycles' Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    [tip:perf/core] perf bench mem: Change 'cycle' to 'cycles' tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 14/14] perf/bench: Run benchmarks, don't test them Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    [tip:perf/core] perf bench: Run benchmarks, don't test them tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 10/14] perf/bench/mem: Improve user visible strings Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    [tip:perf/core] perf bench mem: Improve user visible strings tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 11/14] perf/bench/mem: Reorganize the code a bit Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    [tip:perf/core] perf bench mem: Reorganize the code a bit tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 13/14] perf/bench/mem: Rename 'routine' to 'function' Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    [tip:perf/core] perf bench mem: Rename 'routine' to 'function' tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:10 +0200
    Re: [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' David Ahern <dsahern@gmail.com> - 2015-10-19 15:40 +0200
      Re: [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 21:00 +0200
        Re: [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 21:00 +0200
          Re: [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' Ingo Molnar <mingo@kernel.org> - 2015-10-19 21:10 +0200
            Re: [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 21:30 +0200
              Re: [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 21:30 +0200
                Re: [PATCH 08/14] perf/bench/mem: Rename 'routine' to 'routine_str' Ingo Molnar <mingo@kernel.org> - 2015-10-20 09:40 +0200
    [tip:perf/core] perf bench mem: Rename 'routine' to 'routine_str' tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 02/14] perf/bench: Default to all routines in 'perf bench mem' Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:20 +0200
    Re: [PATCH 02/14] perf/bench: Default to all routines in 'perf bench mem' Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-19 17:30 +0200
      Re: [PATCH 02/14] perf/bench: Default to all routines in 'perf bench  mem' Ingo Molnar <mingo@kernel.org> - 2015-10-19 19:50 +0200
    [tip:perf/core] perf bench: Default to all routines in '  perf bench mem' tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 06/14] perf/bench: List output formatting options on 'perf bench -h' Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:20 +0200
    Re: [PATCH 06/14] perf/bench: List output formatting options on 'perf  bench -h' David Ahern <dsahern@gmail.com> - 2015-10-19 15:30 +0200
      Re: [PATCH 06/14] perf/bench: List output formatting options on  'perf bench -h' Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 21:00 +0200
    [tip:perf/core] perf bench: List output formatting options on '  perf bench -h' tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 05/14] perf/bench: Remove the prefaulting complication from 'perf bench mem mem*' Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:20 +0200
    [tip:perf/core] perf bench:   Remove the prefaulting complication from 'perf bench mem mem*' tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 04/14] perf/bench: Rename 'mem-memcpy.c' => 'mem-functions.c' Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:20 +0200
    Re: [PATCH 04/14] perf/bench: Rename 'mem-memcpy.c' =>  'mem-functions.c' Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 20:40 +0200
    Re: [PATCH 04/14] perf/bench: Rename 'mem-memcpy.c' =>  'mem-functions.c' Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 20:40 +0200
    [tip:perf/core] perf bench: Rename 'mem-memcpy.c' => '  mem-functions.c' tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 03/14] perf/bench: Eliminate unused argument from bench_mem_common() Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:20 +0200
    [tip:perf/core] perf bench:   Eliminate unused argument from bench_mem_common() tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  [PATCH 01/14] perf/bench: Improve the 'perf bench mem memcpy' code readability Ingo Molnar <mingo@kernel.org> - 2015-10-19 10:20 +0200
    [tip:perf/core] perf bench: Improve the 'perf bench mem memcpy'   code readability tip-bot for Ingo Molnar <tipbot@zytor.com> - 2015-10-20 09:50 +0200
  Re: [PATCH 00/14] perf bench: Misc improvements David Ahern <dsahern@gmail.com> - 2015-10-19 15:50 +0200
    Re: [PATCH 00/14] perf bench: Misc improvements Arnaldo Carvalho de Melo <acme@redhat.com> - 2015-10-19 21:10 +0200

csiph-web