linux-next/Documentation/RCU
Frederic Weisbecker 9a7e73c9be rcu: Remove superfluous full memory barrier upon first EQS snapshot
When the grace period kthread checks the extended quiescent state
counter of a CPU, full ordering is necessary to ensure that either:

* If the GP kthread observes the remote target in an extended quiescent
  state, then that target must observe all accesses prior to the current
  grace period, including the current grace period sequence number, once
  it exits that extended quiescent state.

or:

* If the GP kthread observes the remote target NOT in an extended
  quiescent state, then the target further entering in an extended
  quiescent state must observe all accesses prior to the current
  grace period, including the current grace period sequence number, once
  it enters that extended quiescent state.

This ordering is enforced through a full memory barrier placed right
before taking the first EQS snapshot. However this is superfluous
because the snapshot is taken while holding the target's rnp lock which
provides the necessary ordering through its chain of
smp_mb__after_unlock_lock().

Remove the needless explicit barrier before the snapshot and put a
comment about the implicit barrier newly relied upon here.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2024-06-28 06:43:34 -07:00
..
Design rcu: Remove superfluous full memory barrier upon first EQS snapshot 2024-06-28 06:43:34 -07:00
checklist.rst doc: Update checklist.rst discussion of callback execution 2024-02-14 07:53:50 -08:00
index.rst doc: Remove arrayRCU.rst 2022-10-18 14:58:50 -07:00
listRCU.rst rcu: Describe listRCU read-side guarantees 2023-09-11 23:09:35 +02:00
lockdep-splat.rst documentation/rcu: Fix typo 2023-07-14 14:55:56 -07:00
lockdep.rst Documentation: RCU: Correct spelling 2023-04-05 13:47:18 +00:00
NMI-RCU.rst doc: Update NMI-RCU.rst 2023-01-03 17:27:37 -08:00
rcu_dereference.rst doc: Spinlocks are implied RCU readers 2024-02-14 07:53:49 -08:00
rcu.rst doc: Update rcu.rst URL to RCU publications 2023-01-05 11:27:56 -08:00
rcubarrier.rst docs/RCU/rcubarrier: Right-adjust line numbers in code snippets 2023-01-05 11:27:56 -08:00
rculist_nulls.rst Docs/RCU/rculist_nulls: Fix text about atomic_set_release() 2023-07-14 14:55:57 -07:00
rcuref.rst docs: RCU: Convert rcuref.txt to ReST 2020-06-29 11:58:11 -07:00
RTFP.txt Documentation: RCU: Correct spelling 2023-04-05 13:47:18 +00:00
stallwarn.rst doc: Fix htmldocs build warnings of stallwarn.rst 2023-01-05 11:27:56 -08:00
torture.rst doc:it_IT: first translation for locking/ 2024-01-30 13:32:00 -07:00
UP.rst Documentation: RCU: Correct spelling 2023-04-05 13:47:18 +00:00
whatisRCU.rst doc: Remove references to arrayRCU.rst 2024-04-09 15:13:05 +02:00