sched/debug: Make sysrq prints of sched debug data optional

Calls to sysrq_sched_debug_show() can yield rather verbose output
which contributes to log spew and, under heavy load, may increase
the chances of a watchdog bark.

Make printing of this data optional with the introduction of a
new Kconfig, CONFIG_SYSRQ_SCHED_DEBUG.

Change-Id: I5f54d901d0dea403109f7ac33b8881d967a899ed
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
This commit is contained in:
Matt Wagantall 2013-12-05 20:01:32 -08:00 committed by David Keitel
parent 521a572def
commit 5f10bd75eb
4 changed files with 14 additions and 1 deletions

View file

@ -4994,7 +4994,7 @@ void show_state_filter(unsigned long state_filter)
touch_all_softlockup_watchdogs();
#ifdef CONFIG_SCHED_DEBUG
#ifdef CONFIG_SYSRQ_SCHED_DEBUG
sysrq_sched_debug_show();
#endif
rcu_read_unlock();

View file

@ -408,6 +408,7 @@ static int sched_debug_show(struct seq_file *m, void *v)
return 0;
}
#ifdef CONFIG_SYSRQ_SCHED_DEBUG
void sysrq_sched_debug_show(void)
{
int cpu;
@ -417,6 +418,7 @@ void sysrq_sched_debug_show(void)
print_cpu(NULL, cpu);
}
#endif
/*
* This itererator needs some explanation.

View file

@ -1299,7 +1299,9 @@ static inline struct cpuidle_state *idle_get_state(struct rq *rq)
}
#endif
#ifdef CONFIG_SYSRQ_SCHED_DEBUG
extern void sysrq_sched_debug_show(void);
#endif
extern void sched_init_granularity(void);
extern void update_max_interval(void);

View file

@ -876,6 +876,15 @@ config PANIC_ON_RT_THROTTLING
Say N if unsure.
config SYSRQ_SCHED_DEBUG
bool "Print scheduling debugging info from sysrq-trigger"
depends on SCHED_DEBUG
default y
help
If you say Y here, the "show-task-states(T)" and
"show-blocked-tasks(W)" sysrq-triggers will print additional
scheduling statistics.
config SCHEDSTATS
bool "Collect scheduler statistics"
depends on DEBUG_KERNEL && PROC_FS