Skip to content

rcu: suppress GP start to simplify force_quiescent_state()

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest11 patches 11 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11rcu: adjust force_quiescent_state() locking, step 1kernel/rcutree.c+18 -91 reply
2/11rcu: adjust force_quiescent_state() locking, step 2kernel/rcutree.c+3 -101 reply
3/11rcu: prohibit starting new grace periods while forcing quiescent stateskernel/rcutree.c kernel/rcutree.h+19 -141 reply
4/11rcu: eliminate local variable signaled from force_quiescent_state()kernel/rcutree.c+3 -61 reply
5/11rcu: eliminate local variable lastcomp from force_quiescent_state()kernel/rcutree.c kernel/rcutree.h+3 -91 reply
6/11rcu: eliminate second argument of rcu_process_dyntick()kernel/rcutree.c+5 -61 reply
7/11rcu: eliminate rcu_process_dyntick() return valuekernel/rcutree.c+6 -111 reply
8/11rcu: remove leg of force_quiescent_state() switch statementkernel/rcutree.c kernel/rcutree.h+7 -201 reply
9/11rcu: remove redundant grace-period checkkernel/rcutree.c+4 -51 reply
10/11rcu: make force_quiescent_state() start grace period if neededkernel/rcutree.c kernel/rcutree.h+13 -01 reply
11/11rcu: add force_quiescent_state() testing to rcutortureinclude/linux/rcutiny.h include/linux/rcutree.h kernel/rcutorture.c +2 more+130 -21 reply

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/11] rcu: suppress GP start to simplify force_quiescent_state()

Hello!

This patch series makes a sequence of changes that prevent a new RCU grace period from starting while force_quiescent_state() is the the process of trying to cause the prior grace period to complete. This simplifies the code and eliminates numerous painful race conditions.

Thanx, Paul

 b/include/linux/rcutiny.h |   12 +++
 b/include/linux/rcutree.h |    3 
 b/kernel/rcutorture.c     |   80 +++++++++++++++++++++++-
 b/kernel/rcutree.c        |   28 +++++---
 b/kernel/rcutree.h        |    3 
 b/kernel/rcutree_plugin.h |   20 +++++-
 kernel/rcutree.c          |  153 +++++++++++++++++++++-------------------------
 kernel/rcutree.h          |   15 ++--
 8 files changed, 211 insertions(+), 103 deletions(-)