* [PATCH 0/4] perf bench: Common option for specifying style formatting
@ 2009-11-09 17:03 Hitoshi Mitake
2009-11-09 17:03 ` [PATCH 1/4] perf bench: Add stuffs to bench.h for unified output formatting Hitoshi Mitake
2009-11-09 17:59 ` [PATCH 0/4] perf bench: Common option for specifying style formatting Peter Zijlstra
0 siblings, 2 replies; 7+ messages in thread
From: Hitoshi Mitake @ 2009-11-09 17:03 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Hitoshi Mitake, Peter Zijlstra, Paul Mackerras
This patch series adds new option "--format" to
bench subcommand of perf.
Users of perf bench will be able to specify
style formatting with this option in common way.
Hitoshi Mitake (4):
perf bench: Add stuffs to bench.h for unified output formatting
perf bench: Modify builtin-bench.c for processing common options
perf bench: Modified bench/bench-messaging.c to adopt unified output
formatting
perf bench: Modify builtin-pipe.c for processing common options
tools/perf/bench/bench.h | 9 ++++
tools/perf/bench/sched-messaging.c | 18 +++++---
tools/perf/bench/sched-pipe.c | 22 ++++++----
tools/perf/builtin-bench.c | 79 +++++++++++++++++++++++++++++------
4 files changed, 99 insertions(+), 29 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH 1/4] perf bench: Add stuffs to bench.h for unified output formatting 2009-11-09 17:03 [PATCH 0/4] perf bench: Common option for specifying style formatting Hitoshi Mitake @ 2009-11-09 17:03 ` Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 2/4] perf bench: Modify builtin-bench.c for processing common options Hitoshi Mitake 2009-11-09 17:59 ` [PATCH 0/4] perf bench: Common option for specifying style formatting Peter Zijlstra 1 sibling, 1 reply; 7+ messages in thread From: Hitoshi Mitake @ 2009-11-09 17:03 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, Hitoshi Mitake, Peter Zijlstra, Paul Mackerras This patch adds some constants and extern declaration to bench.h. These stuffs are used for unified output formatting of 'perf bench'. Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> --- tools/perf/bench/bench.h | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/tools/perf/bench/bench.h b/tools/perf/bench/bench.h index 59adb27..42167ea 100644 --- a/tools/perf/bench/bench.h +++ b/tools/perf/bench/bench.h @@ -6,4 +6,13 @@ extern int bench_sched_messaging(int argc, const char **argv, extern int bench_sched_pipe(int argc, const char **argv, const char *prefix); +#define BENCH_FORMAT_DEFAULT_STR "default" +#define BENCH_FORMAT_DEFAULT 0 +#define BENCH_FORMAT_SIMPLE_STR "simple" +#define BENCH_FORMAT_SIMPLE 1 + +#define BENCH_FORMAT_UNKNOWN -1 + +extern int bench_format; + #endif -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/4] perf bench: Modify builtin-bench.c for processing common options 2009-11-09 17:03 ` [PATCH 1/4] perf bench: Add stuffs to bench.h for unified output formatting Hitoshi Mitake @ 2009-11-09 17:03 ` Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 3/4] perf bench: Modified bench/bench-messaging.c to adopt unified output formatting Hitoshi Mitake 0 siblings, 1 reply; 7+ messages in thread From: Hitoshi Mitake @ 2009-11-09 17:03 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, Hitoshi Mitake, Peter Zijlstra, Paul Mackerras This patch modifies builtin-bench.c for processing common options. The first option added is "--format". Users of perf bench will be able to specify output style by --format. Example of use: % ./perf bench sched messaging # with no style specify (20 sender and receiver processes per group) (10 groups == 400 processes run) Total time:1.431 sec % ./perf bench --format=simple sched messaging # specified simple 1.431 Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> --- tools/perf/builtin-bench.c | 79 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 65 insertions(+), 14 deletions(-) diff --git a/tools/perf/builtin-bench.c b/tools/perf/builtin-bench.c index 31f4164..c7505ea 100644 --- a/tools/perf/builtin-bench.c +++ b/tools/perf/builtin-bench.c @@ -74,53 +74,104 @@ static void dump_suites(int subsys_index) return; } +static char *bench_format_str; +int bench_format = BENCH_FORMAT_DEFAULT; + +static const struct option bench_options[] = { + OPT_STRING('f', "format", &bench_format_str, "default", + "Specify format style"), + OPT_END() +}; + +static const char * const bench_usage[] = { + "perf bench [<common options>] <subsystem> <suite> [<options>]", + NULL +}; + +static void print_usage(void) +{ + int i; + + printf("Usage: \n"); + for (i = 0; bench_usage[i]; i++) + printf("\t%s\n", bench_usage[i]); + printf("\n"); + + printf("List of available subsystems...\n\n"); + + for (i = 0; subsystems[i].name; i++) + printf("\t%s: %s\n", + subsystems[i].name, subsystems[i].summary); + printf("\n"); +} + +static int bench_str2int(char *str) +{ + if (!str) + return BENCH_FORMAT_DEFAULT; + + if (!strcmp(str, BENCH_FORMAT_DEFAULT_STR)) + return BENCH_FORMAT_DEFAULT; + else if (!strcmp(str, BENCH_FORMAT_SIMPLE_STR)) + return BENCH_FORMAT_SIMPLE; + + return BENCH_FORMAT_UNKNOWN; +} + int cmd_bench(int argc, const char **argv, const char *prefix __used) { int i, j, status = 0; if (argc < 2) { /* No subsystem specified. */ - printf("Usage: perf bench <subsystem> <suite> [<options>]\n\n"); - printf("List of available subsystems...\n\n"); + print_usage(); + goto end; + } - for (i = 0; subsystems[i].name; i++) - printf("\t%s: %s\n", - subsystems[i].name, subsystems[i].summary); - printf("\n"); + argc = parse_options(argc, argv, bench_options, bench_usage, + PARSE_OPT_STOP_AT_NON_OPTION); + + bench_format = bench_str2int(bench_format_str); + if (bench_format == BENCH_FORMAT_UNKNOWN) { + printf("Unknown format descriptor:%s\n", bench_format_str); + goto end; + } + if (argc < 1) { + print_usage(); goto end; } for (i = 0; subsystems[i].name; i++) { - if (strcmp(subsystems[i].name, argv[1])) + if (strcmp(subsystems[i].name, argv[0])) continue; - if (argc < 3) { + if (argc < 2) { /* No suite specified. */ dump_suites(i); goto end; } for (j = 0; subsystems[i].suites[j].name; j++) { - if (strcmp(subsystems[i].suites[j].name, argv[2])) + if (strcmp(subsystems[i].suites[j].name, argv[1])) continue; - status = subsystems[i].suites[j].fn(argc - 2, - argv + 2, prefix); + status = subsystems[i].suites[j].fn(argc - 1, + argv + 1, prefix); goto end; } - if (!strcmp(argv[2], "-h") || !strcmp(argv[2], "--help")) { + if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) { dump_suites(i); goto end; } - printf("Unknown suite:%s for %s\n", argv[2], argv[1]); + printf("Unknown suite:%s for %s\n", argv[1], argv[0]); status = 1; goto end; } - printf("Unknown subsystem:%s\n", argv[1]); + printf("Unknown subsystem:%s\n", argv[0]); status = 1; end: -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/4] perf bench: Modified bench/bench-messaging.c to adopt unified output formatting 2009-11-09 17:03 ` [PATCH 2/4] perf bench: Modify builtin-bench.c for processing common options Hitoshi Mitake @ 2009-11-09 17:03 ` Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 4/4] perf bench: Modify builtin-pipe.c for processing common options Hitoshi Mitake 0 siblings, 1 reply; 7+ messages in thread From: Hitoshi Mitake @ 2009-11-09 17:03 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, Hitoshi Mitake, Peter Zijlstra, Paul Mackerras This patch modifies bench/bench-messaging.c to adopt unified output formatting: --format option. Example of use: % ./perf bench sched messaging # with no style specify (20 sender and receiver processes per group) (10 groups == 400 processes run) Total time:1.431 sec % ./perf bench --format=simple sched messaging # specified simple 1.431 Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> --- tools/perf/bench/sched-messaging.c | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/tools/perf/bench/sched-messaging.c b/tools/perf/bench/sched-messaging.c index 36b62c5..2cc5edc 100644 --- a/tools/perf/bench/sched-messaging.c +++ b/tools/perf/bench/sched-messaging.c @@ -35,7 +35,6 @@ static int use_pipes = 0; static unsigned int loops = 100; static unsigned int thread_mode = 0; static unsigned int num_groups = 10; -static int simple = 0; struct sender_context { unsigned int num_fds; @@ -261,9 +260,6 @@ static const struct option options[] = { "Specify number of groups"), OPT_INTEGER('l', "loop", &loops, "Specify number of loops"), - OPT_BOOLEAN('s', "simple-output", &simple, - "Do simple output (this maybe useful for" - "processing by scripts or graph tools like gnuplot)"), OPT_END() }; @@ -316,9 +312,8 @@ int bench_sched_messaging(int argc, const char **argv, timersub(&stop, &start, &diff); - if (simple) - printf("%lu.%03lu\n", diff.tv_sec, diff.tv_usec/1000); - else { + switch (bench_format) { + case BENCH_FORMAT_DEFAULT: printf("(%d sender and receiver %s per group)\n", num_fds, thread_mode ? "threads" : "processes"); printf("(%d groups == %d %s run)\n\n", @@ -326,6 +321,15 @@ int bench_sched_messaging(int argc, const char **argv, thread_mode ? "threads" : "processes"); printf("\tTotal time:%lu.%03lu sec\n", diff.tv_sec, diff.tv_usec/1000); + break; + case BENCH_FORMAT_SIMPLE: + printf("%lu.%03lu\n", diff.tv_sec, diff.tv_usec/1000); + break; + default: + /* reaching here is something disaster */ + fprintf(stderr, "Unknown format:%d\n", bench_format); + exit(1); + break; } return 0; -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/4] perf bench: Modify builtin-pipe.c for processing common options 2009-11-09 17:03 ` [PATCH 3/4] perf bench: Modified bench/bench-messaging.c to adopt unified output formatting Hitoshi Mitake @ 2009-11-09 17:03 ` Hitoshi Mitake 0 siblings, 0 replies; 7+ messages in thread From: Hitoshi Mitake @ 2009-11-09 17:03 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, Hitoshi Mitake, Peter Zijlstra, Paul Mackerras This patch modifies builtin-pipe.c for processing common options. The first option added is "--format". Users of perf bench will be able to specify output style by --format. Example of use: % ./perf bench sched pipe # with no style specify (executing 1000000 pipe operations between two tasks) Total time:5.855 sec 5.855061 usecs/op 170792 ops/sec % ./perf bench --format=simple sched pipe # specified simple 5.988 Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> --- tools/perf/bench/sched-pipe.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c index 6a29100..a9ac186 100644 --- a/tools/perf/bench/sched-pipe.c +++ b/tools/perf/bench/sched-pipe.c @@ -30,14 +30,10 @@ #define LOOPS_DEFAULT 1000000 static int loops = LOOPS_DEFAULT; -static int simple = 0; static const struct option options[] = { OPT_INTEGER('l', "loop", &loops, "Specify number of loops"), - OPT_BOOLEAN('s', "simple-output", &simple, - "Do simple output (this maybe useful for" - "processing by scripts or graph tools like gnuplot)"), OPT_END() }; @@ -94,10 +90,8 @@ int bench_sched_pipe(int argc, const char **argv, return 0; } - if (simple) - printf("%lu.%03lu\n", - diff.tv_sec, diff.tv_usec / 1000); - else { + switch (bench_format) { + case BENCH_FORMAT_DEFAULT: printf("(executing %d pipe operations between two tasks)\n\n", loops); @@ -111,6 +105,18 @@ int bench_sched_pipe(int argc, const char **argv, printf("\t\t%d ops/sec\n", (int)((double)loops / ((double)result_usec / (double)1000000))); + break; + + case BENCH_FORMAT_SIMPLE: + printf("%lu.%03lu\n", + diff.tv_sec, diff.tv_usec / 1000); + break; + + default: + /* reaching here is something disaster */ + fprintf(stderr, "Unknown format:%d\n", bench_format); + exit(1); + break; } return 0; -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/4] perf bench: Common option for specifying style formatting 2009-11-09 17:03 [PATCH 0/4] perf bench: Common option for specifying style formatting Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 1/4] perf bench: Add stuffs to bench.h for unified output formatting Hitoshi Mitake @ 2009-11-09 17:59 ` Peter Zijlstra 2009-11-09 23:19 ` Hitoshi Mitake 1 sibling, 1 reply; 7+ messages in thread From: Peter Zijlstra @ 2009-11-09 17:59 UTC (permalink / raw) To: Hitoshi Mitake; +Cc: Ingo Molnar, linux-kernel, Paul Mackerras On Tue, 2009-11-10 at 02:03 +0900, Hitoshi Mitake wrote: > Mailer: > git-send-email 1.6.5.2 Please teach your git-send-email thing to use --no-chain-reply-to. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/4] perf bench: Common option for specifying style formatting 2009-11-09 17:59 ` [PATCH 0/4] perf bench: Common option for specifying style formatting Peter Zijlstra @ 2009-11-09 23:19 ` Hitoshi Mitake 0 siblings, 0 replies; 7+ messages in thread From: Hitoshi Mitake @ 2009-11-09 23:19 UTC (permalink / raw) To: peterz; +Cc: mingo, linux-kernel, paulus From: Peter Zijlstra <peterz@infradead.org> Subject: Re: [PATCH 0/4] perf bench: Common option for specifying style formatting Date: Mon, 09 Nov 2009 18:59:15 +0100 > On Tue, 2009-11-10 at 02:03 +0900, Hitoshi Mitake wrote: > > Mailer: > > git-send-email 1.6.5.2 > > Please teach your git-send-email thing to use --no-chain-reply-to. Sorry, I'll send version 2 with --no-chain-reply-to. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-11-09 23:19 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-11-09 17:03 [PATCH 0/4] perf bench: Common option for specifying style formatting Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 1/4] perf bench: Add stuffs to bench.h for unified output formatting Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 2/4] perf bench: Modify builtin-bench.c for processing common options Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 3/4] perf bench: Modified bench/bench-messaging.c to adopt unified output formatting Hitoshi Mitake 2009-11-09 17:03 ` [PATCH 4/4] perf bench: Modify builtin-pipe.c for processing common options Hitoshi Mitake 2009-11-09 17:59 ` [PATCH 0/4] perf bench: Common option for specifying style formatting Peter Zijlstra 2009-11-09 23:19 ` Hitoshi Mitake
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox