/linux-6.3-rc2/Documentation/RCU/ |
A D | UP.rst | 6 A common misconception is that, on UP systems, the call_rcu() primitive 22 which deletes element B, and then invokes call_rcu() to free element B 30 This same problem can occur if call_rcu() is invoked from a hardware 45 RCU usage, since call_rcu() must wait for a grace period to elapse. 46 Therefore, in this case, allowing call_rcu() to immediately invoke 59 Suppose that call_rcu() is invoked while holding a lock, and that the 61 call_rcu() were to directly invoke the callback, the result would 63 call_rcu() invocation a full grace period later. 69 1. If a number of items need to be passed to call_rcu() within 75 so that delaying the call_rcu() until the lock is released [all …]
|
A D | rcubarrier.rst | 8 RCU updaters sometimes use call_rcu() to initiate an asynchronous wait for 16 call_rcu(&p->rcu, p_callback); 18 Since call_rcu() never blocks, this code can safely be used from within 29 Unloading Modules That Use call_rcu() 71 For example, if it uses call_rcu(), call_srcu() on srcu_struct_1, and 172 module invokes call_rcu() from timers, you will need to first refrain 177 Of course, if your module uses call_rcu(), you will need to invoke 180 and on the same srcu_struct structure. If your module uses call_rcu() 232 The rcu_barrier_func() runs on each CPU, where it invokes call_rcu() 243 9 call_rcu(head, rcu_barrier_callback); [all …]
|
A D | checklist.rst | 196 5. If any of call_rcu(), call_srcu(), call_rcu_tasks(), 203 in the case of call_rcu(). 228 primitives such as call_rcu(). 232 If the updater uses call_rcu() or synchronize_rcu(), then 266 8. Although synchronize_rcu() is slower than is call_rcu(), 270 synchronize_rcu() should be used in preference to call_rcu(). 281 code using call_rcu() should explicitly limit update rate in 454 destructive operation, and *only then* invoke call_rcu(), 481 check that you don't pass the same object to call_rcu() 484 call_rcu() (or friends). [all …]
|
A D | whatisRCU.rst | 149 c. synchronize_rcu() / call_rcu() 221 The call_rcu() API is an asynchronous callback form of 365 synchronize_rcu() & call_rcu() 515 The call_rcu() API is as follows:: 517 void call_rcu(struct rcu_head *head, rcu_callback_t func); 558 call_rcu(&old_fp->rcu, foo_reclaim); 576 The use of call_rcu() permits the caller of foo_update_a() to 585 - Use call_rcu() **after** removing a data element from an 1042 rcu_read_lock_held call_rcu 1050 rcu_read_lock_bh call_rcu rcu_barrier [all …]
|
A D | rcuref.rst | 73 call_rcu(&el->head, el_free); remove_element 77 call_rcu(&el->head, el_free); 111 ... call_rcu(&el->head, el_free);
|
/linux-6.3-rc2/tools/testing/radix-tree/linux/ |
A D | radix-tree.h | 16 call_rcu(head, func); in trace_call_rcu() 23 #undef call_rcu 24 #define call_rcu(x, y) trace_call_rcu(x, y) macro
|
/linux-6.3-rc2/net/openvswitch/ |
A D | flow_table.c | 141 call_rcu(&flow->rcu, rcu_free_flow_callback); in ovs_flow_free() 265 call_rcu(&old->rcu, mask_array_rcu_cb); in tbl_mask_array_realloc() 409 call_rcu(&mc->rcu, mask_cache_rcu_cb); in ovs_flow_tbl_masks_cache_resize() 509 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb); in table_instance_destroy() 510 call_rcu(&ufid_ti->rcu, flow_tbl_destroy_rcu_cb); in table_instance_destroy() 523 call_rcu(&mc->rcu, mask_cache_rcu_cb); in ovs_flow_tbl_destroy() 524 call_rcu(&ma->rcu, mask_array_rcu_cb); in ovs_flow_tbl_destroy() 1056 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb); in flow_key_insert() 1078 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb); in flow_ufid_insert() 1185 call_rcu(&ma->rcu, mask_array_rcu_cb); in ovs_flow_masks_rebalance()
|
A D | vport-netdev.c | 161 call_rcu(&vport->rcu, vport_netdev_free); in netdev_destroy() 180 call_rcu(&vport->rcu, vport_netdev_free); in ovs_netdev_tunnel_destroy()
|
/linux-6.3-rc2/include/linux/ |
A D | rcupdate.h | 41 void call_rcu(struct rcu_head *head, rcu_callback_t func); 116 call_rcu(head, func); in call_rcu_hurry() 200 # define call_rcu_tasks call_rcu 247 #define call_rcu_tasks call_rcu
|
A D | rcutiny.h | 104 call_rcu(head, (rcu_callback_t) ((void *) head - ptr)); in __kvfree_call_rcu()
|
/linux-6.3-rc2/security/keys/ |
A D | user_defined.c | 119 call_rcu(&zap->rcu, user_free_payload_rcu); in user_update() 137 call_rcu(&upayload->rcu, user_free_payload_rcu); in user_revoke()
|
A D | request_key_auth.c | 140 call_rcu(&rka->rcu, request_key_auth_rcu_disposal); in request_key_auth_revoke() 153 call_rcu(&rka->rcu, request_key_auth_rcu_disposal); in request_key_auth_destroy()
|
/linux-6.3-rc2/kernel/rcu/ |
A D | tiny.c | 170 void call_rcu(struct rcu_head *head, rcu_callback_t func) in call_rcu() function 199 EXPORT_SYMBOL_GPL(call_rcu);
|
A D | update.c | 419 (crcu_array[i] == call_rcu)) { in __wait_rcu_gp() 436 (crcu_array[i] == call_rcu)) in __wait_rcu_gp() 607 call_rcu(&head, test_callback); in early_boot_test_call_rcu()
|
/linux-6.3-rc2/net/mctp/ |
A D | neigh.c | 81 call_rcu(&neigh->rcu, __mctp_neigh_free); in mctp_neigh_remove_dev() 101 call_rcu(&neigh->rcu, __mctp_neigh_free); in mctp_neigh_remove() 315 call_rcu(&neigh->rcu, __mctp_neigh_free); in mctp_neigh_net_exit()
|
/linux-6.3-rc2/drivers/net/wireguard/ |
A D | allowedips.c | 270 call_rcu(&node->rcu, root_free_rcu); in wg_allowedips_free() 277 call_rcu(&node->rcu, root_free_rcu); in wg_allowedips_free() 333 call_rcu(&node->rcu, node_free_rcu); in wg_allowedips_remove_by_peer() 339 call_rcu(&parent->rcu, node_free_rcu); in wg_allowedips_remove_by_peer()
|
/linux-6.3-rc2/kernel/bpf/ |
A D | devmap.c | 823 call_rcu(&old_dev->rcu, __dev_map_entry_free); in dev_map_delete_elem() 841 call_rcu(&old_dev->rcu, __dev_map_entry_free); in dev_map_hash_delete_elem() 933 call_rcu(&old_dev->rcu, __dev_map_entry_free); in __dev_map_update_elem() 978 call_rcu(&dev->rcu, __dev_map_entry_free); in __dev_map_hash_update_elem() 989 call_rcu(&old_dev->rcu, __dev_map_entry_free); in __dev_map_hash_update_elem() 1066 call_rcu(&dev->rcu, __dev_map_entry_free); in dev_map_hash_remove_netdev() 1113 call_rcu(&dev->rcu, in dev_map_notification()
|
/linux-6.3-rc2/kernel/trace/ |
A D | rethook.c | 70 call_rcu(&rh->rcu, rethook_free_rcu); in rethook_free() 137 call_rcu(&node->rcu, free_rethook_node_rcu); in rethook_recycle()
|
/linux-6.3-rc2/fs/ecryptfs/ |
A D | dentry.c | 71 call_rcu(&p->rcu, ecryptfs_dentry_free_rcu); in ecryptfs_d_release()
|
/linux-6.3-rc2/net/ipv4/ |
A D | inetpeer.c | 174 call_rcu(&p->rcu, inetpeer_free_rcu); in inet_peer_gc() 248 call_rcu(&p->rcu, inetpeer_free_rcu); in inet_putpeer()
|
A D | tcp_fastopen.c | 45 call_rcu(&ctx->rcu, tcp_fastopen_ctx_free); in tcp_fastopen_destroy_cipher() 55 call_rcu(&ctxt->rcu, tcp_fastopen_ctx_free); in tcp_fastopen_ctx_destroy() 89 call_rcu(&octx->rcu, tcp_fastopen_ctx_free); in tcp_fastopen_reset_cipher()
|
/linux-6.3-rc2/net/core/ |
A D | sock_reuseport.c | 364 call_rcu(&old_reuse->rcu, reuseport_free_rcu); in reuseport_add_sock() 423 call_rcu(&old_reuse->rcu, reuseport_free_rcu); in reuseport_resurrect() 456 call_rcu(&reuse->rcu, reuseport_free_rcu); in reuseport_detach_sock()
|
A D | gro_cells.c | 128 call_rcu(&defer->rcu, percpu_free_defer_callback); in gro_cells_destroy()
|
/linux-6.3-rc2/drivers/gpu/drm/scheduler/ |
A D | sched_fence.c | 109 call_rcu(&fence->finished.rcu, drm_sched_fence_free_rcu); in drm_sched_fence_release_scheduled()
|
/linux-6.3-rc2/tools/testing/radix-tree/ |
A D | regression1.c | 76 call_rcu(&p->rcu, page_rcu_free); in page_free()
|