summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Wagantall <mattw@codeaurora.org>2014-06-19 14:23:33 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:58:29 -0700
commitcc06d4a91d964d9263ab0b9b18e9fa8679ecb4c1 (patch)
tree30d13483b5e4eb3f82cc5da7d451612c67e97077
parent841af4dbae5856859e5859194db2a598be3baf16 (diff)
sched/rt: Add Kconfig option to enable panicking for RT throttling
This may be useful for detecting and debugging RT throttling issues. Change-Id: I5807a897d11997d76421c1fcaa2918aad988c6c9 Signed-off-by: Matt Wagantall <mattw@codeaurora.org> [rameezmustafa@codeaurora.org]: Port to msm-3.18] Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org> [joonwoop@codeaurora.org: fixed conflict in lib/Kconfig.debug] Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
-rw-r--r--kernel/sched/rt.c9
-rw-r--r--lib/Kconfig.debug9
2 files changed, 18 insertions, 0 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 1078f9739604..ff25d20e3194 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -922,7 +922,16 @@ static void dump_throttled_rt_tasks(struct rt_rq *rt_rq)
idx = find_next_bit(array->bitmap, MAX_RT_PRIO, idx + 1);
}
out:
+#ifdef CONFIG_PANIC_ON_RT_THROTTLING
+ /*
+ * Use pr_err() in the BUG() case since printk_sched() will
+ * not get flushed and deadlock is not a concern.
+ */
+ pr_err("%s", buf);
+ BUG();
+#else
printk_deferred("%s", buf);
+#endif
}
static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 46a73dc259f9..56b9db804d8c 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -867,6 +867,15 @@ config SCHED_INFO
bool
default n
+config PANIC_ON_RT_THROTTLING
+ bool "Panic on RT throttling"
+ help
+ Say Y here to enable the kernel to panic when a realtime
+ runqueue is throttled. This may be useful for detecting
+ and debugging RT throttling issues.
+
+ Say N if unsure.
+
config SCHEDSTATS
bool "Collect scheduler statistics"
depends on DEBUG_KERNEL && PROC_FS