|
@@ -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"),
|