mirror of https://gitee.com/openkylin/linux.git
perf sched: Move struct perf_sched definition out of cmd_sched()
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>
This commit is contained in:
parent
45a9ee1b3f
commit
f36f83f947
|
@ -1662,28 +1662,29 @@ static int __cmd_record(int argc, const char **argv)
|
||||||
return cmd_record(i, rec_argv, NULL);
|
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)
|
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[] = {
|
const struct option latency_options[] = {
|
||||||
OPT_STRING('s', "sort", &sched.sort_order, "key[,key2...]",
|
OPT_STRING('s', "sort", &sched.sort_order, "key[,key2...]",
|
||||||
"sort by key(s): runtime, switch, avg, max"),
|
"sort by key(s): runtime, switch, avg, max"),
|
||||||
|
|
Loading…
Reference in New Issue