linux/Documentation/RCU
Joel Fernandes 5d71c2b53f rcu: Document concurrent quiescent state reporting for offline CPUs
The synchronization of CPU offlining with GP initialization is confusing
to put it mildly (rightfully so as the issue it deals with is complex).
Recent discussions brought up a question -- what prevents the
rcu_implicit_dyntick_qs() from warning about QS reports for offline
CPUs (missing QS reports for offline CPUs causing indefinite hangs).

QS reporting for now-offline CPUs should only happen from:
- gp_init()
- rcutree_cpu_report_dead()

Add some documentation on this and refer to it from comments in the code
explaining how QS reporting is not missed when these functions are
concurrently running.

I referred heavily to this post [1] about the need for the ofl_lock.
[1] https://lore.kernel.org/all/20180924164443.GF4222@linux.ibm.com/

[ Applied paulmck feedback on moving documentation to Requirements.rst ]

Link: https://lore.kernel.org/all/01b4d228-9416-43f8-a62e-124b92e8741a@paulmck-laptop/
Co-developed-by: "Paul E. McKenney" <paulmck@kernel.org>
Signed-off-by: "Paul E. McKenney" <paulmck@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Signed-off-by: Neeraj Upadhyay (AMD) <neeraj.upadhyay@kernel.org>
2025-07-22 17:10:50 +05:30
..
Design rcu: Document concurrent quiescent state reporting for offline CPUs 2025-07-22 17:10:50 +05:30
checklist.rst doc: Remove RCU Tasks Rude asynchronous APIs 2024-08-14 16:45:07 +05:30
index.rst doc: Remove arrayRCU.rst 2022-10-18 14:58:50 -07:00
listRCU.rst doc/RCU/listRCU: refine example code for eliminating stale data 2025-05-16 09:00:54 -04: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.rst doc: Update rcu.rst URL to RCU publications 2023-01-05 11:27:56 -08:00
rcu_dereference.rst doc: Spinlocks are implied RCU readers 2024-02-14 07:53:49 -08:00
rcubarrier.rst rcu: Remove references to old grace-period-wait primitives 2025-02-04 21:50:06 -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: Add broken-timing possibility to stallwarn.rst 2025-02-04 21:50:06 -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: Update LWN RCU API links in whatisRCU.rst 2025-05-16 09:00:54 -04:00