36 #define suite_all { "all", "Test all benchmark suites", NULL }
40 "Benchmark for scheduler and IPC mechanisms",
43 "Flood of communication over pipe() between two processes",
53 "Simple memory copy in various ways",
56 "Simple memory set in various ways",
72 "scheduler and IPC mechanism",
75 "memory access performance",
78 "all benchmark subsystem",
85 static void dump_suites(
int subsys_index)
89 printf(
"# List of available suites for %s...\n\n",
90 subsystems[subsys_index].
name);
92 for (i = 0; subsystems[subsys_index].
suites[
i].name; i++)
101 static const char *bench_format_str;
104 static const struct option bench_options[] = {
105 OPT_STRING(
'f',
"format", &bench_format_str,
"default",
106 "Specify format style"),
110 static const char *
const bench_usage[] = {
111 "perf bench [<common options>] <subsystem> <suite> [<options>]",
115 static void print_usage(
void)
120 for (i = 0; bench_usage[
i]; i++)
121 printf(
"\t%s\n", bench_usage[i]);
124 printf(
"# List of available subsystems...\n\n");
126 for (i = 0; subsystems[
i].
name; i++)
128 subsystems[i].
name, subsystems[i].summary);
132 static int bench_str2int(
const char *
str)
158 for (i = 0; suites[
i].
fn; i++) {
159 printf(
"# Running %s/%s benchmark...\n",
163 argv[1] = suites[
i].
name;
169 static void all_subsystem(
void)
172 for (i = 0; subsystems[
i].
suites; i++)
173 all_suite(&subsystems[i]);
189 bench_format = bench_str2int(bench_format_str);
191 printf(
"Unknown format descriptor:%s\n", bench_format_str);
200 if (!
strcmp(argv[0],
"all")) {
205 for (i = 0; subsystems[
i].
name; i++) {
215 if (!
strcmp(argv[1],
"all")) {
216 all_suite(&subsystems[i]);
220 for (j = 0; subsystems[
i].
suites[
j].name; j++) {
221 if (
strcmp(subsystems[i].suites[j].name, argv[1]))
225 printf(
"# Running %s/%s benchmark...\n",
227 subsystems[i].suites[j].name);
228 status = subsystems[
i].
suites[
j].fn(argc - 1,
233 if (!
strcmp(argv[1],
"-h") || !
strcmp(argv[1],
"--help")) {
238 printf(
"Unknown suite:%s for %s\n", argv[1], argv[0]);
243 printf(
"Unknown subsystem:%s\n", argv[0]);