Messages in this thread | | | Date | Fri, 4 Dec 2015 15:41:25 -0800 | From | "Paul E. McKenney" <> | Subject | [PATCH tip/core/rcu 0/2] Enforce RCU grace-period transitivity |
| |
Hello!
Within RCU, acquisitions of the rcu_node structure's ->lock field must be followed by smp_mb__after_unlock_lock() in order to enforce RCU's grace-period memory-ordering guarantees. In theory, acquisitions for debug purposes need not have smp_mb__after_unlock_lock(), but in practice, anything other than fully consistent enforcement of this rule is a recipe for disaster. This series therefore adds smp_mb__after_unlock_lock() for consistency:
1. Create wrapper functions to minimize the number of these smp_mb__after_unlock_lock() calls, and apply these wrapper functions throughout. Courtesy of Peter Zijlstra.
2. Catch up wrapper-function application to patches that were in flight at the time #1 was created.
Thanx, Paul
------------------------------------------------------------------------
b/kernel/rcu/tree.c | 102 ++++++++++++++++----------------------------- b/kernel/rcu/tree.h | 39 +++++++++++++++++ b/kernel/rcu/tree_plugin.h | 20 +++----- b/kernel/rcu/tree_trace.c | 2 4 files changed, 85 insertions(+), 78 deletions(-)
| |