sched/stat: Expose /proc/pid/schedstat if CONFIG_SCHED_INFO=y
Expand /proc/pid/schedstat output: - enable it on CONFIG_TASK_DELAY_ACCT=y && !CONFIG_SCHEDSTATS kernels. - dump all zeroes on kernels that are booted with the 'nodelayacct' option, which boot option disables delay accounting on CONFIG_TASK_DELAY_ACCT=y kernels. Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Cc: Balbir Singh <bsingharora@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: a.p.zijlstra@chello.nl Cc: ricklind@us.ibm.com Link: http://lkml.kernel.org/r/5ccbef17d4bc841084ea6e6421d4e4a23b7b806f.1435654789.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
f6db834799
commit
5968cecedd
|
@ -304,14 +304,17 @@ static int proc_pid_stack(struct seq_file *m, struct pid_namespace *ns,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SCHEDSTATS
|
||||
#ifdef CONFIG_SCHED_INFO
|
||||
/*
|
||||
* Provides /proc/PID/schedstat
|
||||
*/
|
||||
static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns,
|
||||
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->sched_info.run_delay,
|
||||
task->sched_info.pcount);
|
||||
|
@ -2600,7 +2603,7 @@ static const struct pid_entry tgid_base_stuff[] = {
|
|||
#ifdef CONFIG_STACKTRACE
|
||||
ONE("stack", S_IRUSR, proc_pid_stack),
|
||||
#endif
|
||||
#ifdef CONFIG_SCHEDSTATS
|
||||
#ifdef CONFIG_SCHED_INFO
|
||||
ONE("schedstat", S_IRUGO, proc_pid_schedstat),
|
||||
#endif
|
||||
#ifdef CONFIG_LATENCYTOP
|
||||
|
@ -2948,7 +2951,7 @@ static const struct pid_entry tid_base_stuff[] = {
|
|||
#ifdef CONFIG_STACKTRACE
|
||||
ONE("stack", S_IRUSR, proc_pid_stack),
|
||||
#endif
|
||||
#ifdef CONFIG_SCHEDSTATS
|
||||
#ifdef CONFIG_SCHED_INFO
|
||||
ONE("schedstat", S_IRUGO, proc_pid_schedstat),
|
||||
#endif
|
||||
#ifdef CONFIG_LATENCYTOP
|
||||
|
|
Loading…
Reference in New Issue