mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
doc: Update whatisRCU.rst for recent RCU API additions
Bring this file kicking and screaming into the year 2025! [ paulmck: Apply feedback from Bagas Sanjaya. ] Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
@@ -1021,32 +1021,41 @@ RCU list traversal::
|
||||
list_entry_rcu
|
||||
list_entry_lockless
|
||||
list_first_entry_rcu
|
||||
list_first_or_null_rcu
|
||||
list_tail_rcu
|
||||
list_next_rcu
|
||||
list_next_or_null_rcu
|
||||
list_for_each_entry_rcu
|
||||
list_for_each_entry_continue_rcu
|
||||
list_for_each_entry_from_rcu
|
||||
list_first_or_null_rcu
|
||||
list_next_or_null_rcu
|
||||
list_for_each_entry_lockless
|
||||
hlist_first_rcu
|
||||
hlist_next_rcu
|
||||
hlist_pprev_rcu
|
||||
hlist_for_each_entry_rcu
|
||||
hlist_for_each_entry_rcu_notrace
|
||||
hlist_for_each_entry_rcu_bh
|
||||
hlist_for_each_entry_from_rcu
|
||||
hlist_for_each_entry_continue_rcu
|
||||
hlist_for_each_entry_continue_rcu_bh
|
||||
hlist_nulls_first_rcu
|
||||
hlist_nulls_next_rcu
|
||||
hlist_nulls_for_each_entry_rcu
|
||||
hlist_nulls_for_each_entry_safe
|
||||
hlist_bl_first_rcu
|
||||
hlist_bl_for_each_entry_rcu
|
||||
|
||||
RCU pointer/list update::
|
||||
|
||||
rcu_assign_pointer
|
||||
rcu_replace_pointer
|
||||
INIT_LIST_HEAD_RCU
|
||||
list_add_rcu
|
||||
list_add_tail_rcu
|
||||
list_del_rcu
|
||||
list_replace_rcu
|
||||
list_splice_init_rcu
|
||||
list_splice_tail_init_rcu
|
||||
hlist_add_behind_rcu
|
||||
hlist_add_before_rcu
|
||||
hlist_add_head_rcu
|
||||
@@ -1054,34 +1063,53 @@ RCU pointer/list update::
|
||||
hlist_del_rcu
|
||||
hlist_del_init_rcu
|
||||
hlist_replace_rcu
|
||||
list_splice_init_rcu
|
||||
list_splice_tail_init_rcu
|
||||
hlist_nulls_del_init_rcu
|
||||
hlist_nulls_del_rcu
|
||||
hlist_nulls_add_head_rcu
|
||||
hlist_nulls_add_tail_rcu
|
||||
hlist_nulls_add_fake
|
||||
hlists_swap_heads_rcu
|
||||
hlist_bl_add_head_rcu
|
||||
hlist_bl_del_init_rcu
|
||||
hlist_bl_del_rcu
|
||||
hlist_bl_set_first_rcu
|
||||
|
||||
RCU::
|
||||
|
||||
Critical sections Grace period Barrier
|
||||
Critical sections Grace period Barrier
|
||||
|
||||
rcu_read_lock synchronize_net rcu_barrier
|
||||
rcu_read_unlock synchronize_rcu
|
||||
rcu_dereference synchronize_rcu_expedited
|
||||
rcu_read_lock_held call_rcu
|
||||
rcu_dereference_check kfree_rcu
|
||||
rcu_dereference_protected
|
||||
rcu_read_lock synchronize_net rcu_barrier
|
||||
rcu_read_unlock synchronize_rcu
|
||||
guard(rcu)() synchronize_rcu_expedited
|
||||
scoped_guard(rcu) synchronize_rcu_mult
|
||||
rcu_dereference call_rcu
|
||||
rcu_dereference_check call_rcu_hurry
|
||||
rcu_dereference_protected kfree_rcu
|
||||
rcu_read_lock_held kvfree_rcu
|
||||
rcu_read_lock_any_held kfree_rcu_mightsleep
|
||||
rcu_pointer_handoff cond_synchronize_rcu
|
||||
unrcu_pointer cond_synchronize_rcu_full
|
||||
cond_synchronize_rcu_expedited
|
||||
cond_synchronize_rcu_expedited_full
|
||||
get_completed_synchronize_rcu
|
||||
get_completed_synchronize_rcu_full
|
||||
get_state_synchronize_rcu
|
||||
get_state_synchronize_rcu_full
|
||||
poll_state_synchronize_rcu
|
||||
poll_state_synchronize_rcu_full
|
||||
same_state_synchronize_rcu
|
||||
same_state_synchronize_rcu_full
|
||||
start_poll_synchronize_rcu
|
||||
start_poll_synchronize_rcu_full
|
||||
start_poll_synchronize_rcu_expedited
|
||||
start_poll_synchronize_rcu_expedited_full
|
||||
|
||||
bh::
|
||||
|
||||
Critical sections Grace period Barrier
|
||||
|
||||
rcu_read_lock_bh call_rcu rcu_barrier
|
||||
rcu_read_unlock_bh synchronize_rcu
|
||||
[local_bh_disable] synchronize_rcu_expedited
|
||||
rcu_read_lock_bh [Same as RCU] [Same as RCU]
|
||||
rcu_read_unlock_bh
|
||||
[local_bh_disable]
|
||||
[and friends]
|
||||
rcu_dereference_bh
|
||||
rcu_dereference_bh_check
|
||||
@@ -1092,9 +1120,9 @@ sched::
|
||||
|
||||
Critical sections Grace period Barrier
|
||||
|
||||
rcu_read_lock_sched call_rcu rcu_barrier
|
||||
rcu_read_unlock_sched synchronize_rcu
|
||||
[preempt_disable] synchronize_rcu_expedited
|
||||
rcu_read_lock_sched [Same as RCU] [Same as RCU]
|
||||
rcu_read_unlock_sched
|
||||
[preempt_disable]
|
||||
[and friends]
|
||||
rcu_read_lock_sched_notrace
|
||||
rcu_read_unlock_sched_notrace
|
||||
@@ -1104,46 +1132,104 @@ sched::
|
||||
rcu_read_lock_sched_held
|
||||
|
||||
|
||||
RCU: Initialization/cleanup/ordering::
|
||||
|
||||
RCU_INIT_POINTER
|
||||
RCU_INITIALIZER
|
||||
RCU_POINTER_INITIALIZER
|
||||
init_rcu_head
|
||||
destroy_rcu_head
|
||||
init_rcu_head_on_stack
|
||||
destroy_rcu_head_on_stack
|
||||
SLAB_TYPESAFE_BY_RCU
|
||||
|
||||
|
||||
RCU: Quiescents states and control::
|
||||
|
||||
cond_resched_tasks_rcu_qs
|
||||
rcu_all_qs
|
||||
rcu_softirq_qs_periodic
|
||||
rcu_end_inkernel_boot
|
||||
rcu_expedite_gp
|
||||
rcu_gp_is_expedited
|
||||
rcu_unexpedite_gp
|
||||
rcu_cpu_stall_reset
|
||||
rcu_head_after_call_rcu
|
||||
rcu_is_watching
|
||||
|
||||
|
||||
RCU-sync primitive::
|
||||
|
||||
rcu_sync_is_idle
|
||||
rcu_sync_init
|
||||
rcu_sync_enter
|
||||
rcu_sync_exit
|
||||
rcu_sync_dtor
|
||||
|
||||
|
||||
RCU-Tasks::
|
||||
|
||||
Critical sections Grace period Barrier
|
||||
Critical sections Grace period Barrier
|
||||
|
||||
N/A call_rcu_tasks rcu_barrier_tasks
|
||||
N/A call_rcu_tasks rcu_barrier_tasks
|
||||
synchronize_rcu_tasks
|
||||
|
||||
|
||||
RCU-Tasks-Rude::
|
||||
|
||||
Critical sections Grace period Barrier
|
||||
Critical sections Grace period Barrier
|
||||
|
||||
N/A N/A
|
||||
synchronize_rcu_tasks_rude
|
||||
N/A synchronize_rcu_tasks_rude rcu_barrier_tasks_rude
|
||||
call_rcu_tasks_rude
|
||||
|
||||
|
||||
RCU-Tasks-Trace::
|
||||
|
||||
Critical sections Grace period Barrier
|
||||
Critical sections Grace period Barrier
|
||||
|
||||
rcu_read_lock_trace call_rcu_tasks_trace rcu_barrier_tasks_trace
|
||||
rcu_read_lock_trace call_rcu_tasks_trace rcu_barrier_tasks_trace
|
||||
rcu_read_unlock_trace synchronize_rcu_tasks_trace
|
||||
guard(rcu_tasks_trace)()
|
||||
scoped_guard(rcu_tasks_trace)
|
||||
|
||||
|
||||
SRCU list traversal::
|
||||
list_for_each_entry_srcu
|
||||
hlist_for_each_entry_srcu
|
||||
|
||||
|
||||
SRCU::
|
||||
|
||||
Critical sections Grace period Barrier
|
||||
Critical sections Grace period Barrier
|
||||
|
||||
srcu_read_lock call_srcu srcu_barrier
|
||||
srcu_read_unlock synchronize_srcu
|
||||
srcu_dereference synchronize_srcu_expedited
|
||||
srcu_read_lock call_srcu srcu_barrier
|
||||
srcu_read_unlock synchronize_srcu
|
||||
srcu_read_lock_fast synchronize_srcu_expedited
|
||||
srcu_read_unlock_fast get_state_synchronize_srcu
|
||||
srcu_read_lock_nmisafe start_poll_synchronize_srcu
|
||||
srcu_read_unlock_nmisafe start_poll_synchronize_srcu_expedited
|
||||
srcu_read_lock_notrace poll_state_synchronize_srcu
|
||||
srcu_read_unlock_notrace
|
||||
srcu_down_read
|
||||
srcu_up_read
|
||||
srcu_down_read_fast
|
||||
srcu_up_read_fast
|
||||
guard(srcu)()
|
||||
scoped_guard(srcu)
|
||||
srcu_read_lock_held
|
||||
srcu_dereference
|
||||
srcu_dereference_check
|
||||
srcu_dereference_notrace
|
||||
srcu_read_lock_held
|
||||
|
||||
SRCU: Initialization/cleanup::
|
||||
|
||||
SRCU: Initialization/cleanup/ordering::
|
||||
|
||||
DEFINE_SRCU
|
||||
DEFINE_STATIC_SRCU
|
||||
init_srcu_struct
|
||||
cleanup_srcu_struct
|
||||
smp_mb__after_srcu_read_unlock
|
||||
|
||||
All: lockdep-checked RCU utility APIs::
|
||||
|
||||
|
||||
Reference in New Issue
Block a user