diff options
author | Peter Zijlstra <peterz@infradead.org> | 2014-09-24 10:18:55 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-10-28 10:56:52 +0100 |
commit | 8eb23b9f35aae413140d3fda766a98092c21e9b0 (patch) | |
tree | 657a91ed72882475ada772da052a8a332d70a2dc /include/linux/kernel.h | |
parent | 26cabd31259ba43f68026ce3f62b78094124333f (diff) | |
download | blackbird-op-linux-8eb23b9f35aae413140d3fda766a98092c21e9b0.tar.gz blackbird-op-linux-8eb23b9f35aae413140d3fda766a98092c21e9b0.zip |
sched: Debug nested sleeps
Validate we call might_sleep() with TASK_RUNNING, which catches places
where we nest blocking primitives, eg. mutex usage in a wait loop.
Since all blocking is arranged through task_struct::state, nesting
this will cause the inner primitive to set TASK_RUNNING and the outer
will thus not block.
Another observed problem is calling a blocking function from
schedule()->sched_submit_work()->blk_schedule_flush_plug() which will
then destroy the task state for the actual __schedule() call that
comes after it.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: tglx@linutronix.de
Cc: ilya.dryomov@inktank.com
Cc: umgwanakikbuti@gmail.com
Cc: oleg@redhat.com
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/20140924082242.591637616@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/kernel.h')
0 files changed, 0 insertions, 0 deletions