|
@@ -304,14 +304,17 @@ static int proc_pid_stack(struct seq_file *m, struct pid_namespace *ns,
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-#ifdef CONFIG_SCHEDSTATS
|
|
|
|
|
|
+#ifdef CONFIG_SCHED_INFO
|
|
/*
|
|
/*
|
|
* Provides /proc/PID/schedstat
|
|
* Provides /proc/PID/schedstat
|
|
*/
|
|
*/
|
|
static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns,
|
|
static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns,
|
|
struct pid *pid, struct task_struct *task)
|
|
struct pid *pid, struct task_struct *task)
|
|
{
|
|
{
|
|
- seq_printf(m, "%llu %llu %lu\n",
|
|
|
|
|
|
+ if (unlikely(!sched_info_on()))
|
|
|
|
+ seq_printf(m, "0 0 0\n");
|
|
|
|
+ else
|
|
|
|
+ seq_printf(m, "%llu %llu %lu\n",
|
|
(unsigned long long)task->se.sum_exec_runtime,
|
|
(unsigned long long)task->se.sum_exec_runtime,
|
|
(unsigned long long)task->sched_info.run_delay,
|
|
(unsigned long long)task->sched_info.run_delay,
|
|
task->sched_info.pcount);
|
|
task->sched_info.pcount);
|
|
@@ -2600,7 +2603,7 @@ static const struct pid_entry tgid_base_stuff[] = {
|
|
#ifdef CONFIG_STACKTRACE
|
|
#ifdef CONFIG_STACKTRACE
|
|
ONE("stack", S_IRUSR, proc_pid_stack),
|
|
ONE("stack", S_IRUSR, proc_pid_stack),
|
|
#endif
|
|
#endif
|
|
-#ifdef CONFIG_SCHEDSTATS
|
|
|
|
|
|
+#ifdef CONFIG_SCHED_INFO
|
|
ONE("schedstat", S_IRUGO, proc_pid_schedstat),
|
|
ONE("schedstat", S_IRUGO, proc_pid_schedstat),
|
|
#endif
|
|
#endif
|
|
#ifdef CONFIG_LATENCYTOP
|
|
#ifdef CONFIG_LATENCYTOP
|
|
@@ -2948,7 +2951,7 @@ static const struct pid_entry tid_base_stuff[] = {
|
|
#ifdef CONFIG_STACKTRACE
|
|
#ifdef CONFIG_STACKTRACE
|
|
ONE("stack", S_IRUSR, proc_pid_stack),
|
|
ONE("stack", S_IRUSR, proc_pid_stack),
|
|
#endif
|
|
#endif
|
|
-#ifdef CONFIG_SCHEDSTATS
|
|
|
|
|
|
+#ifdef CONFIG_SCHED_INFO
|
|
ONE("schedstat", S_IRUGO, proc_pid_schedstat),
|
|
ONE("schedstat", S_IRUGO, proc_pid_schedstat),
|
|
#endif
|
|
#endif
|
|
#ifdef CONFIG_LATENCYTOP
|
|
#ifdef CONFIG_LATENCYTOP
|