06 Dec, 2015
7 commits
-
Because RCU-sched expedited grace periods now use IPIs and interact
with rcu_read_unlock(), it is no longer sufficient to disable preemption
across RCU read-side critical sections that acquire and hold scheduler
locks. It is now necessary to instead disable interrupts. This commit
documents this change.Signed-off-by: Paul E. McKenney
-
The RCU requirements do not make it absolutely clear that the
memory-barrier requirements are not intended to replace the fundamental
requirement that all pre-existing RCU readers complete before a grace
period completes. This commit therefore pulls the memory-barrier
requirements into a separate section and explicitly calls out the
relationship between the memory-barrier requirements and the fundamental
requirement.Signed-off-by: Paul E. McKenney
-
This commit adds a second option for avoiding scheduler/RCU deadlocks,
namely that preemption be disabled across the entire RCU read-side
critical section in question.Signed-off-by: Paul E. McKenney
-
This commit expands on RCU's composability by comparing it to that of
transactional memory and of locking.Signed-off-by: Paul E. McKenney
-
This commit adds verbiage on boot and sysfs parameters that can be
used to control RCU CPU stall warnings, both to change the timeout
and to suppress these warnings entirely.Signed-off-by: Paul E. McKenney
-
This commit records RCU's guarantee that the bottom bit of the rcu_head
structure's ->next field will remain zero for callbacks posted via
call_rcu(), but not necessarily for kfree_rcu() or some
possible future call_rcu_lazy() variant that might one day be created
for energy-efficiency purposese.Signed-off-by: Paul E. McKenney
[ paulmck: Updates URLs as suggested by Josh Triplett. ] -
This commit adds RCU requirements as published in a 2015 LWN series.
Bringing these requirements in-tree allows them to be updated as changes
are discovered.Signed-off-by: Paul E. McKenney
[ paulmck: Updates to charset and URLs as suggested by Josh Triplett. ]