浏览代码

sched: Make sleeping inside spinlock detection working in !CONFIG_PREEMPT

Select CONFIG_PREEMPT_COUNT when we enable the sleeping inside
spinlock detection, so that the preempt offset gets correctly
incremented/decremented from preempt_disable()/preempt_enable().

This makes the preempt count eventually working in !CONFIG_PREEMPT
when that debug option is set and thus fixes the detection of explicit
preemption disabled sections under such config. Code that sleeps
in explicitly preempt disabled section can be finally spotted
in non-preemptible kernels.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Frederic Weisbecker 14 年之前
父节点
当前提交
e8f7c70f44
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      lib/Kconfig.debug

+ 1 - 0
lib/Kconfig.debug

@@ -650,6 +650,7 @@ config TRACE_IRQFLAGS
 
 
 config DEBUG_SPINLOCK_SLEEP
 config DEBUG_SPINLOCK_SLEEP
 	bool "Spinlock debugging: sleep-inside-spinlock checking"
 	bool "Spinlock debugging: sleep-inside-spinlock checking"
+	select PREEMPT_COUNT
 	depends on DEBUG_KERNEL
 	depends on DEBUG_KERNEL
 	help
 	help
 	  If you say Y here, various routines which may sleep will become very
 	  If you say Y here, various routines which may sleep will become very