perf sched: Move struct perf_sched definition out of cmd_sched()
authorNamhyung Kim <namhyung.kim@lge.com>
Tue, 4 Jun 2013 05:46:19 +0000 (14:46 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 12 Jul 2013 16:52:35 +0000 (13:52 -0300)
For some reason it consumed quite amount of compile time when declared
as local variable, and it disappeared when moved out of the function.
Moving other variables/tables didn't help.

On my system this single-file-change build time reduced from 11s to 3s.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1370324779-16921-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-sched.c

index fed9ae432c166d2f8d179bfb8a1fd15123112a7f..fba4a940ba3100b2fb4f9e148dd43c2a1cca8631 100644 (file)
@@ -1662,28 +1662,29 @@ static int __cmd_record(int argc, const char **argv)
        return cmd_record(i, rec_argv, NULL);
 }
 
+static const char default_sort_order[] = "avg, max, switch, runtime";
+static struct perf_sched sched = {
+       .tool = {
+               .sample          = perf_sched__process_tracepoint_sample,
+               .comm            = perf_event__process_comm,
+               .lost            = perf_event__process_lost,
+               .fork            = perf_event__process_fork,
+               .ordered_samples = true,
+       },
+       .cmp_pid              = LIST_HEAD_INIT(sched.cmp_pid),
+       .sort_list            = LIST_HEAD_INIT(sched.sort_list),
+       .start_work_mutex     = PTHREAD_MUTEX_INITIALIZER,
+       .work_done_wait_mutex = PTHREAD_MUTEX_INITIALIZER,
+       .curr_pid             = { [0 ... MAX_CPUS - 1] = -1 },
+       .sort_order           = default_sort_order,
+       .replay_repeat        = 10,
+       .profile_cpu          = -1,
+       .next_shortname1      = 'A',
+       .next_shortname2      = '0',
+};
+
 int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
 {
-       const char default_sort_order[] = "avg, max, switch, runtime";
-       struct perf_sched sched = {
-               .tool = {
-                       .sample          = perf_sched__process_tracepoint_sample,
-                       .comm            = perf_event__process_comm,
-                       .lost            = perf_event__process_lost,
-                       .fork            = perf_event__process_fork,
-                       .ordered_samples = true,
-               },
-               .cmp_pid              = LIST_HEAD_INIT(sched.cmp_pid),
-               .sort_list            = LIST_HEAD_INIT(sched.sort_list),
-               .start_work_mutex     = PTHREAD_MUTEX_INITIALIZER,
-               .work_done_wait_mutex = PTHREAD_MUTEX_INITIALIZER,
-               .curr_pid             = { [0 ... MAX_CPUS - 1] = -1 },
-               .sort_order           = default_sort_order,
-               .replay_repeat        = 10,
-               .profile_cpu          = -1,
-               .next_shortname1      = 'A',
-               .next_shortname2      = '0',
-       };
        const struct option latency_options[] = {
        OPT_STRING('s', "sort", &sched.sort_order, "key[,key2...]",
                   "sort by key(s): runtime, switch, avg, max"),