srcu: Check for consistent global per-srcu_struct NMI safety
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 20 Sep 2022 21:54:41 +0000 (14:54 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Thu, 20 Oct 2022 22:02:27 +0000 (15:02 -0700)
commit36f65f1d1553e35cd9e6b281271f40d639a128c3
tree91ad8b870888afc8299876118c7f1a60ff60a6ad
parent27120e7d2c4d5c438b76f9c6330037a52ad0722e
srcu: Check for consistent global per-srcu_struct NMI safety

This commit adds runtime checks to verify that a given srcu_struct uses
consistent NMI-safe (or not) read-side primitives globally, but based
on the per-CPU data.  These global checks are made by the grace-period
code that must scan the srcu_data structures anyway, and are done only
in kernels built with CONFIG_PROVE_RCU=y.

Link: https://lore.kernel.org/all/20220910221947.171557773@linutronix.de/
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: John Ogness <john.ogness@linutronix.de>
Cc: Petr Mladek <pmladek@suse.com>
kernel/rcu/srcutree.c