| /linux/Documentation/RCU/ |
| H 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 25 Now, if call_rcu() were to directly invoke its arguments, then upon return 30 This same problem can occur if call_rcu() is invoked from a hardware 37 by having call_rcu() directly invoke its arguments only if it was called 43 deletes element B from the list, then passes it to call_rcu() for deferred 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 48 underlying RCU, namely that call_rcu() defers invoking its arguments until 59 Suppose that call_rcu() is invoked while holding a lock, and that the [all …]
|
| H A D | checklist.rst | 203 5. If any of call_rcu(), call_srcu(), call_rcu_tasks(), or 209 function does this for you in the case of call_rcu(). 234 primitives such as call_rcu(). 238 If the updater uses call_rcu() or synchronize_rcu(), then 277 disables BH when updaters use call_rcu() or synchronize_rcu(). 279 8. Although synchronize_rcu() is slower than is call_rcu(), 283 synchronize_rcu() should be used in preference to call_rcu(). 294 code using call_rcu() should explicitly limit update rate in 298 Ways of gaining this self-limiting property when using call_rcu(), 390 CPU that executed the corresponding call_rcu(), call_srcu(), [all …]
|
| H 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/tools/testing/shared/linux/ |
| H 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/net/openvswitch/ |
| H A D | flow_table.c | 140 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() 406 call_rcu(&mc->rcu, mask_cache_rcu_cb); in ovs_flow_tbl_masks_cache_resize() 506 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb); in table_instance_destroy() 507 call_rcu(&ufid_ti->rcu, flow_tbl_destroy_rcu_cb); in table_instance_destroy() 520 call_rcu(&mc->rcu, mask_cache_rcu_cb); in ovs_flow_tbl_destroy() 521 call_rcu(&ma->rcu, mask_array_rcu_cb); in ovs_flow_tbl_destroy() 1053 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb); in flow_key_insert() 1075 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb); in flow_ufid_insert() 1181 call_rcu(&ma->rcu, mask_array_rcu_cb); in ovs_flow_masks_rebalance()
|
| H A D | vport-netdev.c | 201 call_rcu(&vport->rcu, vport_netdev_free); in netdev_destroy()
|
| /linux/security/keys/ |
| H 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()
|
| /linux/kernel/rcu/ |
| H A D | tiny.c | 158 void call_rcu(struct rcu_head *head, rcu_callback_t func) in call_rcu() function 184 EXPORT_SYMBOL_GPL(call_rcu);
|
| /linux/include/linux/ |
| H A D | rcupdate.h | 51 void call_rcu(struct rcu_head *head, rcu_callback_t func); 134 call_rcu(head, func); in call_rcu_hurry() 193 # define call_rcu_tasks call_rcu 211 #define call_rcu_tasks call_rcu
|
| /linux/net/mctp/ |
| H 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() 319 call_rcu(&neigh->rcu, __mctp_neigh_free); in mctp_neigh_net_exit()
|
| /linux/kernel/trace/ |
| H A D | rethook.c | 68 call_rcu(&rh->rcu, rethook_free_rcu); in rethook_free() 150 call_rcu(&node->rcu, free_rethook_node_rcu); in rethook_recycle()
|
| /linux/net/hsr/ |
| H A D | hsr_framereg.c | 165 call_rcu(&node->rcu_head, hsr_free_node_rcu); in hsr_del_nodes() 508 call_rcu(&node_curr->rcu_head, hsr_free_node_rcu); in hsr_handle_sup_frame() 757 call_rcu(&node->rcu_head, hsr_free_node_rcu); in hsr_prune_nodes() 791 call_rcu(&node->rcu_head, hsr_free_node_rcu); in hsr_prune_proxy_nodes()
|
| /linux/net/ipv4/ |
| H A D | tcp_fastopen.c | 132 call_rcu(&ctx->rcu, tcp_fastopen_ctx_free); in tcp_fastopen_destroy_cipher() 142 call_rcu(&ctxt->rcu, tcp_fastopen_ctx_free); in tcp_fastopen_ctx_destroy() 177 call_rcu(&octx->rcu, tcp_fastopen_ctx_free); in tcp_fastopen_reset_cipher()
|
| /linux/net/core/ |
| H A D | sock_reuseport.c | 363 call_rcu(&old_reuse->rcu, reuseport_free_rcu); in reuseport_add_sock() 422 call_rcu(&old_reuse->rcu, reuseport_free_rcu); in reuseport_resurrect() 455 call_rcu(&reuse->rcu, reuseport_free_rcu); in reuseport_detach_sock()
|
| H A D | gro_cells.c | 140 call_rcu(&defer->rcu, percpu_free_defer_callback); in gro_cells_destroy()
|
| /linux/arch/x86/mm/ |
| H A D | kmmio.c | 520 call_rcu(&dr->rcu, rcu_free_kmmio_fault_pages); in remove_kmmio_fault_pages() 586 call_rcu(&drelease->rcu, remove_kmmio_fault_pages); in unregister_kmmio_probe()
|
| /linux/Documentation/RCU/Design/Requirements/ |
| H A D | Requirements.rst | 130 | call_rcu() or kfree_rcu(), which will be discussed later. | 660 be avoided through use of the call_rcu() and kfree_rcu() API 1244 unacceptable. In these situations, the asynchronous call_rcu() can 1273 25 call_rcu(&p->rh, remove_gp_cb); 1279 lines 1-5. The function remove_gp_cb() is passed to call_rcu() 1283 call_rcu() function may be used in a number of situations where 1287 call_rcu() is illegal within NMI handlers and from idle and offline 1300 | call_rcu() on line 25 stores into the structure, which would | 1345 kfree_rcu() from the same environments as for call_rcu(). 1346 Interestingly enough, DYNIX/ptx had the equivalents of call_rcu() [all …]
|
| /linux/tools/testing/radix-tree/ |
| H A D | regression1.c | 76 call_rcu(&p->rcu, page_rcu_free); in page_free()
|
| /linux/io_uring/ |
| H A D | eventfd.c | 39 call_rcu(&ev_fd->rcu, io_eventfd_free); in io_eventfd_put()
|
| /linux/net/rxrpc/ |
| H A D | local_object.c | 314 call_rcu(&local->rcu, rxrpc_local_rcu); in rxrpc_lookup_local() 372 call_rcu(&local->rcu, rxrpc_local_rcu); in rxrpc_put_local()
|
| /linux/scripts/coccinelle/api/ |
| H A D | atomic_as_refcounter.cocci | 21 identifier fname6 =~ ".*call_rcu.*";
|
| /linux/drivers/net/wireguard/ |
| H A D | peer.c | 220 call_rcu(&peer->rcu, rcu_release); in kref_release()
|
| H A D | ratelimiter.c | 51 call_rcu(&entry->rcu, entry_free); in entry_uninit()
|
| /linux/Documentation/translations/zh_CN/core-api/ |
| H A D | assoc_array.rst | 94 传递给 ``call_rcu()`` ,以释放它和它所指向的任何死的东西。
|
| /linux/tools/memory-model/Documentation/ |
| H A D | litmus-tests.txt | 372 emulating call_rcu(), and finally tricks to improve herd7 performance 818 emulate call_rcu(): 842 23 smp_store_release(*c, 1); // Emulate call_rcu(). 849 30 r0 = smp_load_acquire(*c); // Note call_rcu() request. 866 then emulates call_rcu() by doing a release store into "c". 869 call_rcu(). Line 30 first does an acquire load from "c", then line 31 998 For example, call_rcu() and rcu_barrier() are not supported. 1018 c. The call_rcu() function is not modeled. As was shown above, 1022 from the site of the emulated call_rcu() to the beginning 1026 emulated in litmus tests emulating call_rcu() via [all …]
|