@@ -1021,67 +1021,95 @@ RCU list traversal::
10211021 list_entry_rcu
10221022 list_entry_lockless
10231023 list_first_entry_rcu
1024+ list_first_or_null_rcu
1025+ list_tail_rcu
10241026 list_next_rcu
1027+ list_next_or_null_rcu
10251028 list_for_each_entry_rcu
10261029 list_for_each_entry_continue_rcu
10271030 list_for_each_entry_from_rcu
1028- list_first_or_null_rcu
1029- list_next_or_null_rcu
1031+ list_for_each_entry_lockless
10301032 hlist_first_rcu
10311033 hlist_next_rcu
10321034 hlist_pprev_rcu
10331035 hlist_for_each_entry_rcu
1036+ hlist_for_each_entry_rcu_notrace
10341037 hlist_for_each_entry_rcu_bh
10351038 hlist_for_each_entry_from_rcu
10361039 hlist_for_each_entry_continue_rcu
10371040 hlist_for_each_entry_continue_rcu_bh
10381041 hlist_nulls_first_rcu
1042+ hlist_nulls_next_rcu
10391043 hlist_nulls_for_each_entry_rcu
1044+ hlist_nulls_for_each_entry_safe
10401045 hlist_bl_first_rcu
10411046 hlist_bl_for_each_entry_rcu
10421047
10431048RCU pointer/list update::
10441049
10451050 rcu_assign_pointer
1051+ rcu_replace_pointer
1052+ INIT_LIST_HEAD_RCU
10461053 list_add_rcu
10471054 list_add_tail_rcu
10481055 list_del_rcu
10491056 list_replace_rcu
1057+ list_splice_init_rcu
1058+ list_splice_tail_init_rcu
10501059 hlist_add_behind_rcu
10511060 hlist_add_before_rcu
10521061 hlist_add_head_rcu
10531062 hlist_add_tail_rcu
10541063 hlist_del_rcu
10551064 hlist_del_init_rcu
10561065 hlist_replace_rcu
1057- list_splice_init_rcu
1058- list_splice_tail_init_rcu
10591066 hlist_nulls_del_init_rcu
10601067 hlist_nulls_del_rcu
10611068 hlist_nulls_add_head_rcu
1069+ hlist_nulls_add_tail_rcu
1070+ hlist_nulls_add_fake
1071+ hlists_swap_heads_rcu
10621072 hlist_bl_add_head_rcu
1063- hlist_bl_del_init_rcu
10641073 hlist_bl_del_rcu
10651074 hlist_bl_set_first_rcu
10661075
10671076RCU::
10681077
1069- Critical sections Grace period Barrier
1070-
1071- rcu_read_lock synchronize_net rcu_barrier
1072- rcu_read_unlock synchronize_rcu
1073- rcu_dereference synchronize_rcu_expedited
1074- rcu_read_lock_held call_rcu
1075- rcu_dereference_check kfree_rcu
1076- rcu_dereference_protected
1078+ Critical sections Grace period Barrier
1079+
1080+ rcu_read_lock synchronize_net rcu_barrier
1081+ rcu_read_unlock synchronize_rcu
1082+ guard(rcu)() synchronize_rcu_expedited
1083+ scoped_guard(rcu) synchronize_rcu_mult
1084+ rcu_dereference call_rcu
1085+ rcu_dereference_check call_rcu_hurry
1086+ rcu_dereference_protected kfree_rcu
1087+ rcu_read_lock_held kvfree_rcu
1088+ rcu_read_lock_any_held kfree_rcu_mightsleep
1089+ rcu_pointer_handoff cond_synchronize_rcu
1090+ unrcu_pointer cond_synchronize_rcu_full
1091+ cond_synchronize_rcu_expedited
1092+ cond_synchronize_rcu_expedited_full
1093+ get_completed_synchronize_rcu
1094+ get_completed_synchronize_rcu_full
1095+ get_state_synchronize_rcu
1096+ get_state_synchronize_rcu_full
1097+ poll_state_synchronize_rcu
1098+ poll_state_synchronize_rcu_full
1099+ same_state_synchronize_rcu
1100+ same_state_synchronize_rcu_full
1101+ start_poll_synchronize_rcu
1102+ start_poll_synchronize_rcu_full
1103+ start_poll_synchronize_rcu_expedited
1104+ start_poll_synchronize_rcu_expedited_full
10771105
10781106bh::
10791107
10801108 Critical sections Grace period Barrier
10811109
1082- rcu_read_lock_bh call_rcu rcu_barrier
1083- rcu_read_unlock_bh synchronize_rcu
1084- [local_bh_disable] synchronize_rcu_expedited
1110+ rcu_read_lock_bh [Same as RCU] [Same as RCU]
1111+ rcu_read_unlock_bh
1112+ [local_bh_disable]
10851113 [and friends]
10861114 rcu_dereference_bh
10871115 rcu_dereference_bh_check
@@ -1092,9 +1120,9 @@ sched::
10921120
10931121 Critical sections Grace period Barrier
10941122
1095- rcu_read_lock_sched call_rcu rcu_barrier
1096- rcu_read_unlock_sched synchronize_rcu
1097- [preempt_disable] synchronize_rcu_expedited
1123+ rcu_read_lock_sched [Same as RCU] [Same as RCU]
1124+ rcu_read_unlock_sched
1125+ [preempt_disable]
10981126 [and friends]
10991127 rcu_read_lock_sched_notrace
11001128 rcu_read_unlock_sched_notrace
@@ -1104,46 +1132,104 @@ sched::
11041132 rcu_read_lock_sched_held
11051133
11061134
1135+ RCU: Initialization/cleanup/ordering::
1136+
1137+ RCU_INIT_POINTER
1138+ RCU_INITIALIZER
1139+ RCU_POINTER_INITIALIZER
1140+ init_rcu_head
1141+ destroy_rcu_head
1142+ init_rcu_head_on_stack
1143+ destroy_rcu_head_on_stack
1144+ SLAB_TYPESAFE_BY_RCU
1145+
1146+
1147+ RCU: Quiescents states and control::
1148+
1149+ cond_resched_tasks_rcu_qs
1150+ rcu_all_qs
1151+ rcu_softirq_qs_periodic
1152+ rcu_end_inkernel_boot
1153+ rcu_expedite_gp
1154+ rcu_gp_is_expedited
1155+ rcu_unexpedite_gp
1156+ rcu_cpu_stall_reset
1157+ rcu_head_after_call_rcu
1158+ rcu_is_watching
1159+
1160+
1161+ RCU-sync primitive::
1162+
1163+ rcu_sync_is_idle
1164+ rcu_sync_init
1165+ rcu_sync_enter
1166+ rcu_sync_exit
1167+ rcu_sync_dtor
1168+
1169+
11071170RCU-Tasks::
11081171
1109- Critical sections Grace period Barrier
1172+ Critical sections Grace period Barrier
11101173
1111- N/A call_rcu_tasks rcu_barrier_tasks
1174+ N/A call_rcu_tasks rcu_barrier_tasks
11121175 synchronize_rcu_tasks
11131176
11141177
11151178RCU-Tasks-Rude::
11161179
1117- Critical sections Grace period Barrier
1180+ Critical sections Grace period Barrier
11181181
1119- N/A N/A
1120- synchronize_rcu_tasks_rude
1182+ N/A synchronize_rcu_tasks_rude rcu_barrier_tasks_rude
1183+ call_rcu_tasks_rude
11211184
11221185
11231186RCU-Tasks-Trace::
11241187
1125- Critical sections Grace period Barrier
1188+ Critical sections Grace period Barrier
11261189
1127- rcu_read_lock_trace call_rcu_tasks_trace rcu_barrier_tasks_trace
1190+ rcu_read_lock_trace call_rcu_tasks_trace rcu_barrier_tasks_trace
11281191 rcu_read_unlock_trace synchronize_rcu_tasks_trace
1192+ guard(rcu_tasks_trace)()
1193+ scoped_guard(rcu_tasks_trace)
11291194
11301195
1131- SRCU::
1196+ SRCU list traversal::
1197+ list_for_each_entry_srcu
1198+ hlist_for_each_entry_srcu
11321199
1133- Critical sections Grace period Barrier
11341200
1135- srcu_read_lock call_srcu srcu_barrier
1136- srcu_read_unlock synchronize_srcu
1137- srcu_dereference synchronize_srcu_expedited
1201+ SRCU::
1202+
1203+ Critical sections Grace period Barrier
1204+
1205+ srcu_read_lock call_srcu srcu_barrier
1206+ srcu_read_unlock synchronize_srcu
1207+ srcu_read_lock_fast synchronize_srcu_expedited
1208+ srcu_read_unlock_fast get_state_synchronize_srcu
1209+ srcu_read_lock_nmisafe start_poll_synchronize_srcu
1210+ srcu_read_unlock_nmisafe start_poll_synchronize_srcu_expedited
1211+ srcu_read_lock_notrace poll_state_synchronize_srcu
1212+ srcu_read_unlock_notrace
1213+ srcu_down_read
1214+ srcu_up_read
1215+ srcu_down_read_fast
1216+ srcu_up_read_fast
1217+ guard(srcu)()
1218+ scoped_guard(srcu)
1219+ srcu_read_lock_held
1220+ srcu_dereference
11381221 srcu_dereference_check
1222+ srcu_dereference_notrace
11391223 srcu_read_lock_held
11401224
1141- SRCU: Initialization/cleanup::
1225+
1226+ SRCU: Initialization/cleanup/ordering::
11421227
11431228 DEFINE_SRCU
11441229 DEFINE_STATIC_SRCU
11451230 init_srcu_struct
11461231 cleanup_srcu_struct
1232+ smp_mb__after_srcu_read_unlock
11471233
11481234All: lockdep-checked RCU utility APIs::
11491235
0 commit comments