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>
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index a61171d..5c26f3d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -5058,7 +5058,7 @@
touch_all_softlockup_watchdogs();
-#ifdef CONFIG_SCHED_DEBUG
+#ifdef CONFIG_SYSRQ_SCHED_DEBUG
sysrq_sched_debug_show();
#endif
rcu_read_unlock();
diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 2f9ac8f..20e311b 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -382,10 +382,12 @@
return 0;
}
+#ifdef CONFIG_SYSRQ_SCHED_DEBUG
void sysrq_sched_debug_show(void)
{
sched_debug_show(NULL, NULL);
}
+#endif
static int sched_debug_open(struct inode *inode, struct file *filp)
{
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 51a0b08..9b8ed6b 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -869,7 +869,9 @@
#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);
extern void update_group_power(struct sched_domain *sd, int cpu);
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index b9060a1..5160a45 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -291,6 +291,15 @@
that can help debug the scheduler. The runtime overhead of this
option is minimal.
+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