Commit d07e6d08 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

documentation: Update API documentation



This commit updates the list of RCU API members in whatisRCU.txt.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
parent b4c5bf35
Loading
Loading
Loading
Loading
+44 −11
Original line number Diff line number Diff line
@@ -326,11 +326,11 @@ used as follows:
a.	synchronize_rcu()	rcu_read_lock() / rcu_read_unlock()
	call_rcu()		rcu_dereference()

b.	call_rcu_bh()		rcu_read_lock_bh() / rcu_read_unlock_bh()
				rcu_dereference_bh()
b.	synchronize_rcu_bh()	rcu_read_lock_bh() / rcu_read_unlock_bh()
	call_rcu_bh()		rcu_dereference_bh()

c.	synchronize_sched()	rcu_read_lock_sched() / rcu_read_unlock_sched()
				preempt_disable() / preempt_enable()
	call_rcu_sched()	preempt_disable() / preempt_enable()
				local_irq_save() / local_irq_restore()
				hardirq enter / hardirq exit
				NMI enter / NMI exit
@@ -794,10 +794,22 @@ in docbook. Here is the list, by category.

RCU list traversal:

	list_entry_rcu
	list_first_entry_rcu
	list_next_rcu
	list_for_each_entry_rcu
	list_for_each_entry_continue_rcu
	hlist_first_rcu
	hlist_next_rcu
	hlist_pprev_rcu
	hlist_for_each_entry_rcu
	hlist_for_each_entry_rcu_bh
	hlist_for_each_entry_continue_rcu
	hlist_for_each_entry_continue_rcu_bh
	hlist_nulls_first_rcu
	hlist_nulls_for_each_entry_rcu
	list_for_each_entry_continue_rcu
	hlist_bl_first_rcu
	hlist_bl_for_each_entry_rcu

RCU pointer/list update:

@@ -806,28 +818,38 @@ RCU pointer/list update:
	list_add_tail_rcu
	list_del_rcu
	list_replace_rcu
	hlist_del_rcu
	hlist_add_after_rcu
	hlist_add_before_rcu
	hlist_add_head_rcu
	hlist_del_rcu
	hlist_del_init_rcu
	hlist_replace_rcu
	list_splice_init_rcu()
	hlist_nulls_del_init_rcu
	hlist_nulls_del_rcu
	hlist_nulls_add_head_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

	rcu_read_lock		synchronize_net		rcu_barrier
	rcu_read_unlock		synchronize_rcu
	rcu_dereference		synchronize_rcu_expedited
				call_rcu
				kfree_rcu

	rcu_read_lock_held	call_rcu
	rcu_dereference_check	kfree_rcu
	rcu_dereference_protected

bh:	Critical sections	Grace period		Barrier

	rcu_read_lock_bh	call_rcu_bh		rcu_barrier_bh
	rcu_read_unlock_bh	synchronize_rcu_bh
	rcu_dereference_bh	synchronize_rcu_bh_expedited

	rcu_dereference_bh_check
	rcu_dereference_bh_protected
	rcu_read_lock_bh_held

sched:	Critical sections	Grace period		Barrier

@@ -835,7 +857,12 @@ sched: Critical sections Grace period Barrier
	rcu_read_unlock_sched	call_rcu_sched
	[preempt_disable]	synchronize_sched_expedited
	[and friends]
	rcu_read_lock_sched_notrace
	rcu_read_unlock_sched_notrace
	rcu_dereference_sched
	rcu_dereference_sched_check
	rcu_dereference_sched_protected
	rcu_read_lock_sched_held


SRCU:	Critical sections	Grace period		Barrier
@@ -843,6 +870,8 @@ SRCU: Critical sections Grace period Barrier
	srcu_read_lock		synchronize_srcu	srcu_barrier
	srcu_read_unlock	call_srcu
	srcu_dereference	synchronize_srcu_expedited
	srcu_dereference_check
	srcu_read_lock_held

SRCU:	Initialization/cleanup
	init_srcu_struct
@@ -850,9 +879,13 @@ SRCU: Initialization/cleanup

All:  lockdep-checked RCU-protected pointer access

	rcu_dereference_check
	rcu_dereference_protected
	rcu_access_index
	rcu_access_pointer
	rcu_dereference_index_check
	rcu_dereference_raw
	rcu_lockdep_assert
	rcu_sleep_check
	RCU_NONIDLE

See the comment headers in the source code (or the docbook generated
from them) for more information.