diff options
| author | Matt Wagantall <mattw@codeaurora.org> | 2015-07-14 23:24:30 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:02:09 -0700 |
| commit | 61c44b5807356caa182e385357bae009748850a6 (patch) | |
| tree | abc7399c94d9ec0ce233dfc79aaa95da31a04830 /kernel | |
| parent | b1fb594df9371dcfeae484ca71ae23841f9da729 (diff) | |
sched/debug: Add Kconfig to trigger panics on all 'BUG:' conditions
Introduce CONFIG_PANIC_ON_SCHED_BUG to trigger panics along with all
'BUG:' prints from the scheduler core, even potentially-recoverable
ones such as scheduling while atomic, sleeping from invalid context,
and detection of broken arch topologies.
Change-Id: I5d2f561614604357a2bc7900b047e53b3a0b7c6d
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
[joonwoop@codeaurora.org: fixed trivial merge conflict in
lib/Kconfig.debug.]
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched/core.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index bdf8b6fe5f27..5c441a5ec617 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4773,6 +4773,9 @@ static noinline void __schedule_bug(struct task_struct *prev) pr_cont("\n"); } #endif +#ifdef CONFIG_PANIC_ON_SCHED_BUG + BUG(); +#endif dump_stack(); add_taint(TAINT_WARN, LOCKDEP_STILL_OK); } @@ -8756,6 +8759,9 @@ struct sched_domain *build_sched_domain(struct sched_domain_topology_level *tl, pr_err(" the %s domain not a subset of the %s domain\n", child->name, sd->name); #endif +#ifdef CONFIG_PANIC_ON_SCHED_BUG + BUG(); +#endif /* Fixup, ensure @sd has at least @child cpus. */ cpumask_or(sched_domain_span(sd), sched_domain_span(sd), @@ -9449,6 +9455,9 @@ void ___might_sleep(const char *file, int line, int preempt_offset) pr_cont("\n"); } #endif +#ifdef CONFIG_PANIC_ON_SCHED_BUG + BUG(); +#endif dump_stack(); } EXPORT_SYMBOL(___might_sleep); |
