Skip to content

Enforce RCU grace-period transitivity

Paul E. McKenney lkml 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2rcu: Create transitive rnp->lock acquisition functionskernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h+71 -640 replies
2/2rcu: Add transitivity to remaining rcu_node ->lock acquisitionskernel/rcu/tree.c kernel/rcu/tree_plugin.h kernel/rcu/tree_trace.c+14 -140 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [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(-)