Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

+116 -30
+116 -30
Documentation/RCU/whatisRCU.rst
··· 1021 1021 list_entry_rcu 1022 1022 list_entry_lockless 1023 1023 list_first_entry_rcu 1024 + list_first_or_null_rcu 1025 + list_tail_rcu 1024 1026 list_next_rcu 1027 + list_next_or_null_rcu 1025 1028 list_for_each_entry_rcu 1026 1029 list_for_each_entry_continue_rcu 1027 1030 list_for_each_entry_from_rcu 1028 - list_first_or_null_rcu 1029 - list_next_or_null_rcu 1031 + list_for_each_entry_lockless 1030 1032 hlist_first_rcu 1031 1033 hlist_next_rcu 1032 1034 hlist_pprev_rcu 1033 1035 hlist_for_each_entry_rcu 1036 + hlist_for_each_entry_rcu_notrace 1034 1037 hlist_for_each_entry_rcu_bh 1035 1038 hlist_for_each_entry_from_rcu 1036 1039 hlist_for_each_entry_continue_rcu 1037 1040 hlist_for_each_entry_continue_rcu_bh 1038 1041 hlist_nulls_first_rcu 1042 + hlist_nulls_next_rcu 1039 1043 hlist_nulls_for_each_entry_rcu 1044 + hlist_nulls_for_each_entry_safe 1040 1045 hlist_bl_first_rcu 1041 1046 hlist_bl_for_each_entry_rcu 1042 1047 1043 1048 RCU pointer/list update:: 1044 1049 1045 1050 rcu_assign_pointer 1051 + rcu_replace_pointer 1052 + INIT_LIST_HEAD_RCU 1046 1053 list_add_rcu 1047 1054 list_add_tail_rcu 1048 1055 list_del_rcu 1049 1056 list_replace_rcu 1057 + list_splice_init_rcu 1058 + list_splice_tail_init_rcu 1050 1059 hlist_add_behind_rcu 1051 1060 hlist_add_before_rcu 1052 1061 hlist_add_head_rcu ··· 1063 1054 hlist_del_rcu 1064 1055 hlist_del_init_rcu 1065 1056 hlist_replace_rcu 1066 - list_splice_init_rcu 1067 - list_splice_tail_init_rcu 1068 1057 hlist_nulls_del_init_rcu 1069 1058 hlist_nulls_del_rcu 1070 1059 hlist_nulls_add_head_rcu 1060 + hlist_nulls_add_tail_rcu 1061 + hlist_nulls_add_fake 1062 + hlists_swap_heads_rcu 1071 1063 hlist_bl_add_head_rcu 1072 - hlist_bl_del_init_rcu 1073 1064 hlist_bl_del_rcu 1074 1065 hlist_bl_set_first_rcu 1075 1066 1076 1067 RCU:: 1077 1068 1078 - Critical sections Grace period Barrier 1069 + Critical sections Grace period Barrier 1079 1070 1080 - rcu_read_lock synchronize_net rcu_barrier 1081 - rcu_read_unlock synchronize_rcu 1082 - rcu_dereference synchronize_rcu_expedited 1083 - rcu_read_lock_held call_rcu 1084 - rcu_dereference_check kfree_rcu 1085 - rcu_dereference_protected 1071 + rcu_read_lock synchronize_net rcu_barrier 1072 + rcu_read_unlock synchronize_rcu 1073 + guard(rcu)() synchronize_rcu_expedited 1074 + scoped_guard(rcu) synchronize_rcu_mult 1075 + rcu_dereference call_rcu 1076 + rcu_dereference_check call_rcu_hurry 1077 + rcu_dereference_protected kfree_rcu 1078 + rcu_read_lock_held kvfree_rcu 1079 + rcu_read_lock_any_held kfree_rcu_mightsleep 1080 + rcu_pointer_handoff cond_synchronize_rcu 1081 + unrcu_pointer cond_synchronize_rcu_full 1082 + cond_synchronize_rcu_expedited 1083 + cond_synchronize_rcu_expedited_full 1084 + get_completed_synchronize_rcu 1085 + get_completed_synchronize_rcu_full 1086 + get_state_synchronize_rcu 1087 + get_state_synchronize_rcu_full 1088 + poll_state_synchronize_rcu 1089 + poll_state_synchronize_rcu_full 1090 + same_state_synchronize_rcu 1091 + same_state_synchronize_rcu_full 1092 + start_poll_synchronize_rcu 1093 + start_poll_synchronize_rcu_full 1094 + start_poll_synchronize_rcu_expedited 1095 + start_poll_synchronize_rcu_expedited_full 1086 1096 1087 1097 bh:: 1088 1098 1089 1099 Critical sections Grace period Barrier 1090 1100 1091 - rcu_read_lock_bh call_rcu rcu_barrier 1092 - rcu_read_unlock_bh synchronize_rcu 1093 - [local_bh_disable] synchronize_rcu_expedited 1101 + rcu_read_lock_bh [Same as RCU] [Same as RCU] 1102 + rcu_read_unlock_bh 1103 + [local_bh_disable] 1094 1104 [and friends] 1095 1105 rcu_dereference_bh 1096 1106 rcu_dereference_bh_check ··· 1120 1092 1121 1093 Critical sections Grace period Barrier 1122 1094 1123 - rcu_read_lock_sched call_rcu rcu_barrier 1124 - rcu_read_unlock_sched synchronize_rcu 1125 - [preempt_disable] synchronize_rcu_expedited 1095 + rcu_read_lock_sched [Same as RCU] [Same as RCU] 1096 + rcu_read_unlock_sched 1097 + [preempt_disable] 1126 1098 [and friends] 1127 1099 rcu_read_lock_sched_notrace 1128 1100 rcu_read_unlock_sched_notrace ··· 1132 1104 rcu_read_lock_sched_held 1133 1105 1134 1106 1107 + RCU: Initialization/cleanup/ordering:: 1108 + 1109 + RCU_INIT_POINTER 1110 + RCU_INITIALIZER 1111 + RCU_POINTER_INITIALIZER 1112 + init_rcu_head 1113 + destroy_rcu_head 1114 + init_rcu_head_on_stack 1115 + destroy_rcu_head_on_stack 1116 + SLAB_TYPESAFE_BY_RCU 1117 + 1118 + 1119 + RCU: Quiescents states and control:: 1120 + 1121 + cond_resched_tasks_rcu_qs 1122 + rcu_all_qs 1123 + rcu_softirq_qs_periodic 1124 + rcu_end_inkernel_boot 1125 + rcu_expedite_gp 1126 + rcu_gp_is_expedited 1127 + rcu_unexpedite_gp 1128 + rcu_cpu_stall_reset 1129 + rcu_head_after_call_rcu 1130 + rcu_is_watching 1131 + 1132 + 1133 + RCU-sync primitive:: 1134 + 1135 + rcu_sync_is_idle 1136 + rcu_sync_init 1137 + rcu_sync_enter 1138 + rcu_sync_exit 1139 + rcu_sync_dtor 1140 + 1141 + 1135 1142 RCU-Tasks:: 1136 1143 1137 - Critical sections Grace period Barrier 1144 + Critical sections Grace period Barrier 1138 1145 1139 - N/A call_rcu_tasks rcu_barrier_tasks 1146 + N/A call_rcu_tasks rcu_barrier_tasks 1140 1147 synchronize_rcu_tasks 1141 1148 1142 1149 1143 1150 RCU-Tasks-Rude:: 1144 1151 1145 - Critical sections Grace period Barrier 1152 + Critical sections Grace period Barrier 1146 1153 1147 - N/A N/A 1148 - synchronize_rcu_tasks_rude 1154 + N/A synchronize_rcu_tasks_rude rcu_barrier_tasks_rude 1155 + call_rcu_tasks_rude 1149 1156 1150 1157 1151 1158 RCU-Tasks-Trace:: 1152 1159 1153 - Critical sections Grace period Barrier 1160 + Critical sections Grace period Barrier 1154 1161 1155 - rcu_read_lock_trace call_rcu_tasks_trace rcu_barrier_tasks_trace 1162 + rcu_read_lock_trace call_rcu_tasks_trace rcu_barrier_tasks_trace 1156 1163 rcu_read_unlock_trace synchronize_rcu_tasks_trace 1164 + guard(rcu_tasks_trace)() 1165 + scoped_guard(rcu_tasks_trace) 1166 + 1167 + 1168 + SRCU list traversal:: 1169 + list_for_each_entry_srcu 1170 + hlist_for_each_entry_srcu 1157 1171 1158 1172 1159 1173 SRCU:: 1160 1174 1161 - Critical sections Grace period Barrier 1175 + Critical sections Grace period Barrier 1162 1176 1163 - srcu_read_lock call_srcu srcu_barrier 1164 - srcu_read_unlock synchronize_srcu 1165 - srcu_dereference synchronize_srcu_expedited 1177 + srcu_read_lock call_srcu srcu_barrier 1178 + srcu_read_unlock synchronize_srcu 1179 + srcu_read_lock_fast synchronize_srcu_expedited 1180 + srcu_read_unlock_fast get_state_synchronize_srcu 1181 + srcu_read_lock_nmisafe start_poll_synchronize_srcu 1182 + srcu_read_unlock_nmisafe start_poll_synchronize_srcu_expedited 1183 + srcu_read_lock_notrace poll_state_synchronize_srcu 1184 + srcu_read_unlock_notrace 1185 + srcu_down_read 1186 + srcu_up_read 1187 + srcu_down_read_fast 1188 + srcu_up_read_fast 1189 + guard(srcu)() 1190 + scoped_guard(srcu) 1191 + srcu_read_lock_held 1192 + srcu_dereference 1166 1193 srcu_dereference_check 1194 + srcu_dereference_notrace 1167 1195 srcu_read_lock_held 1168 1196 1169 - SRCU: Initialization/cleanup:: 1197 + 1198 + SRCU: Initialization/cleanup/ordering:: 1170 1199 1171 1200 DEFINE_SRCU 1172 1201 DEFINE_STATIC_SRCU 1173 1202 init_srcu_struct 1174 1203 cleanup_srcu_struct 1204 + smp_mb__after_srcu_read_unlock 1175 1205 1176 1206 All: lockdep-checked RCU utility APIs:: 1177 1207