perf sched: Optimize build time
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 22 Oct 2013 07:34:16 +0000 (10:34 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 23 Oct 2013 13:24:29 +0000 (10:24 -0300)
builtin-sched.c took a log time to build with -O6 optimization. This
turned out to be caused by:

.curr_pid = { [0 ... MAX_CPUS - 1] = -1 },

Fix by initializing curr_pid programmatically.

This addresses the problem cured in f36f83f947ed using a smaller hammer.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: David Ahern <dsahern@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.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/1382427258-17495-13-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-sched.c

index 5a33856..ddb5dc1 100644 (file)
@@ -1670,7 +1670,6 @@ int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
                .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,
@@ -1732,6 +1731,10 @@ int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
                .switch_event       = replay_switch_event,
                .fork_event         = replay_fork_event,
        };
+       unsigned int i;
+
+       for (i = 0; i < ARRAY_SIZE(sched.curr_pid); i++)
+               sched.curr_pid[i] = -1;
 
        argc = parse_options(argc, argv, sched_options, sched_usage,
                             PARSE_OPT_STOP_AT_NON_OPTION);