kernel/smp: Provide CSD lock timeout diagnostics
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 30 Jun 2020 20:22:54 +0000 (13:22 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Fri, 4 Sep 2020 18:52:50 +0000 (11:52 -0700)
commit35feb60474bf4f7fa7840e14fc7fd344996b919d
tree17030fd8b9c654eab6b9da001de1776ff95a2385
parente48c15b796d412ede883bb2ef7779b2a142f7962
kernel/smp: Provide CSD lock timeout diagnostics

This commit causes csd_lock_wait() to emit diagnostics when a CPU
fails to respond quickly enough to one of the smp_call_function()
family of function calls.  These diagnostics are enabled by a new
CSD_LOCK_WAIT_DEBUG Kconfig option that depends on DEBUG_KERNEL.

This commit was inspired by an earlier patch by Josef Bacik.

[ paulmck: Fix for syzbot+0f719294463916a3fc0e@syzkaller.appspotmail.com ]
[ paulmck: Fix KASAN use-after-free issue reported by Qian Cai. ]
[ paulmck: Fix botched nr_cpu_ids comparison per Dan Carpenter. ]
[ paulmck: Apply Peter Zijlstra feedback. ]
Link: https://lore.kernel.org/lkml/00000000000042f21905a991ecea@google.com
Link: https://lore.kernel.org/lkml/0000000000002ef21705a9933cf3@google.com
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/smp.c
lib/Kconfig.debug