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
NMI-RCU.rst
RTFP.txt
UP.rst
checklist.rst
index.rst
listRCU.rst doc/RCU/listRCU: refine example code for eliminating stale data 2025-05-16 09:00:54 -04:00
lockdep-splat.rst
lockdep.rst
rcu.rst
rcu_dereference.rst
rcubarrier.rst
rculist_nulls.rst
rcuref.rst
stallwarn.rst
torture.rst
whatisRCU.rst doc: Update LWN RCU API links in whatisRCU.rst 2025-05-16 09:00:54 -04:00