Commit e611eecd6f9f91d74beda8cfbb3b5e02abdeb5a1
1 parent
fe8e64071a
rcu: add comment saying why DEBUG_OBJECTS_RCU_HEAD depends on PREEMPT.
The build will break if you change the Kconfig to allow DEBUG_OBJECTS_RCU_HEAD and !PREEMPT, so document the reasoning near where the breakage would occur. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Showing 1 changed file with 5 additions and 0 deletions Side-by-side Diff
kernel/rcupdate.c
... | ... | @@ -214,6 +214,11 @@ |
214 | 214 | * Ensure that queued callbacks are all executed. |
215 | 215 | * If we detect that we are nested in a RCU read-side critical |
216 | 216 | * section, we should simply fail, otherwise we would deadlock. |
217 | + * Note that the machinery to reliably determine whether | |
218 | + * or not we are in an RCU read-side critical section | |
219 | + * exists only in the preemptible RCU implementations | |
220 | + * (TINY_PREEMPT_RCU and TREE_PREEMPT_RCU), which is why | |
221 | + * DEBUG_OBJECTS_RCU_HEAD is disallowed if !PREEMPT. | |
217 | 222 | */ |
218 | 223 | if (rcu_preempt_depth() != 0 || preempt_count() != 0 || |
219 | 224 | irqs_disabled()) { |