| /linux/tools/memory-model/ |
| H A D | linux-kernel.cat | 64 let gp = po ; [Sync-rcu | Sync-srcu] ; po? 69 let barrier = fencerel(Barrier | Rmb | Wmb | Mb | Sync-rcu | Sync-srcu | 129 * In the definition of rcu-fence below, the po term at the left-hand side 131 * out. They have been moved into the definitions of rcu-link and rb. 134 let rcu-gp = [Sync-rcu] (* Compare with gp *) 136 let rcu-rscsi = rcu-rscs^-1 144 let rcu-link = po? ; hb* ; pb* ; prop ; po 148 * critical sections (joined by rcu-link) induces order like a generalized 154 let rec rcu-order = rcu-gp | srcu-gp | 155 (rcu-gp ; rcu-link ; rcu-rscsi) | [all …]
|
| H A D | linux-kernel.bell | 29 'rcu-lock (*rcu_read_lock*) || 30 'rcu-unlock (*rcu_read_unlock*) || 31 'sync-rcu (*synchronize_rcu*) || 57 let rcu-rscs = let rec 69 flag ~empty Rcu-lock \ domain(rcu-rscs) as unmatched-rcu-lock 70 flag ~empty Rcu-unlock \ range(rcu-rscs) as unmatched-rcu-unlock 82 flag ~empty rcu-rscs & (po ; [Sync-srcu] ; po) as invalid-sleep
|
| /linux/io_uring/ |
| H A D | eventfd.c | 21 struct rcu_head rcu; member 28 static void io_eventfd_free(struct rcu_head *rcu) in io_eventfd_free() argument 30 struct io_ev_fd *ev_fd = container_of(rcu, struct io_ev_fd, rcu); in io_eventfd_free() 39 call_rcu(&ev_fd->rcu, io_eventfd_free); in io_eventfd_put() 42 static void io_eventfd_do_signal(struct rcu_head *rcu) in io_eventfd_do_signal() argument 44 struct io_ev_fd *ev_fd = container_of(rcu, struct io_ev_fd, rcu); in io_eventfd_do_signal() 60 call_rcu_hurry(&ev_fd->rcu, io_eventfd_do_signal); in __io_eventfd_signal() 83 guard(rcu)(); in io_eventfd_signal() local
|
| H A D | napi.c | 18 struct rcu_head rcu; member 52 scoped_guard(rcu) { in __io_napi_add_id() 101 kfree_rcu(e, rcu); in __io_napi_del_id() 120 kfree_rcu(e, rcu); in __io_napi_remove_stale() 220 scoped_guard(rcu) { in io_napi_blocking_busy_loop() 261 kfree_rcu(e, rcu); in io_napi_free() 388 scoped_guard(rcu) { in io_napi_sqpoll_busy_poll()
|
| /linux/kernel/bpf/ |
| H A D | bpf_local_storage.c | 116 static void __bpf_local_storage_free_trace_rcu(struct rcu_head *rcu) in __bpf_local_storage_free_trace_rcu() argument 123 local_storage = container_of(rcu, struct bpf_local_storage, rcu); in __bpf_local_storage_free_trace_rcu() 127 kfree_rcu(local_storage, rcu); in __bpf_local_storage_free_trace_rcu() 130 static void bpf_local_storage_free_rcu(struct rcu_head *rcu) in bpf_local_storage_free_rcu() argument 134 local_storage = container_of(rcu, struct bpf_local_storage, rcu); in bpf_local_storage_free_rcu() 138 static void bpf_local_storage_free_trace_rcu(struct rcu_head *rcu) in bpf_local_storage_free_trace_rcu() argument 141 bpf_local_storage_free_rcu(rcu); in bpf_local_storage_free_trace_rcu() 143 call_rcu(rcu, bpf_local_storage_free_rcu); in bpf_local_storage_free_trace_rcu() 151 kfree_rcu(local_storage, rcu); in __bpf_local_storage_free() 153 call_rcu_tasks_trace(&local_storage->rcu, in __bpf_local_storage_free() [all …]
|
| H A D | local_storage.c | 177 kfree_rcu(new, rcu); in cgroup_storage_update_elem() 533 static void free_shared_cgroup_storage_rcu(struct rcu_head *rcu) in free_shared_cgroup_storage_rcu() argument 536 container_of(rcu, struct bpf_cgroup_storage, rcu); in free_shared_cgroup_storage_rcu() 542 static void free_percpu_cgroup_storage_rcu(struct rcu_head *rcu) in free_percpu_cgroup_storage_rcu() argument 545 container_of(rcu, struct bpf_cgroup_storage, rcu); in free_percpu_cgroup_storage_rcu() 562 call_rcu(&storage->rcu, free_shared_cgroup_storage_rcu); in bpf_cgroup_storage_free() 564 call_rcu(&storage->rcu, free_percpu_cgroup_storage_rcu); in bpf_cgroup_storage_free()
|
| /linux/fs/dlm/ |
| H A D | memory.c | 100 static void __free_rsb_rcu(struct rcu_head *rcu) in __free_rsb_rcu() argument 102 struct dlm_rsb *r = container_of(rcu, struct dlm_rsb, rcu); in __free_rsb_rcu() 110 call_rcu(&r->rcu, __free_rsb_rcu); in dlm_free_rsb() 118 static void __free_lkb_rcu(struct rcu_head *rcu) in __free_lkb_rcu() argument 120 struct dlm_lkb *lkb = container_of(rcu, struct dlm_lkb, rcu); in __free_lkb_rcu() 136 call_rcu(&lkb->rcu, __free_lkb_rcu); in dlm_free_lkb()
|
| /linux/include/net/ |
| H A D | if_inet6.h | 80 struct rcu_head rcu; member 87 struct rcu_head rcu; member 99 struct rcu_head rcu; member 109 struct rcu_head rcu; member 133 struct rcu_head rcu; member 153 struct rcu_head rcu; member 219 struct rcu_head rcu; member
|
| /linux/net/batman-adv/ |
| H A D | types.h | 211 struct rcu_head rcu; member 283 struct rcu_head rcu; member 353 struct rcu_head rcu; member 506 struct rcu_head rcu; member 564 struct rcu_head rcu; member 620 struct rcu_head rcu; member 655 struct rcu_head rcu; member 724 struct rcu_head rcu; member 1414 struct rcu_head rcu; member 1442 struct rcu_head rcu; member [all …]
|
| /linux/include/linux/ |
| H A D | watch_queue.h | 30 struct rcu_head rcu; member 39 struct rcu_head rcu; member 56 struct rcu_head rcu; member 73 struct rcu_head rcu; member 115 kfree_rcu(wlist, rcu); in remove_watch_list()
|
| H A D | rcupdate.h | 521 #define unrcu_pointer(p) __unrcu_pointer(p, __UNIQUE_ID(rcu)) 549 #define rcu_dereference_raw(p) __rcu_dereference_raw(p, __UNIQUE_ID(rcu)) 644 #define rcu_access_pointer(p) __rcu_access_pointer((p), __UNIQUE_ID(rcu), __rcu) 680 __rcu_dereference_check((p), __UNIQUE_ID(rcu), \ 696 __rcu_dereference_check((p), __UNIQUE_ID(rcu), \ 712 __rcu_dereference_check((p), __UNIQUE_ID(rcu), \ 730 __rcu_dereference_check((p), __UNIQUE_ID(rcu), \ 742 __rcu_dereference_check((p), __UNIQUE_ID(rcu), 1, __rcu) 761 __rcu_dereference_protected((p), __UNIQUE_ID(rcu), (c), __rcu) 1195 DEFINE_LOCK_GUARD_0(rcu,
|
| /linux/rust/kernel/ |
| H A D | revocable.rs | 10 use crate::{bindings, prelude::*, sync::rcu, types::Opaque}; 100 let guard = rcu::read_lock(); in try_access() 118 pub fn try_access_with_guard<'a>(&'a self, _guard: &'a rcu::Guard) -> Option<&'a T> { in try_access_with_guard() 241 _rcu_guard: rcu::Guard, 246 fn new(data_ref: *const T, rcu_guard: rcu::Guard) -> Self { in new()
|
| /linux/lib/ |
| H A D | percpu-refcount.c | 150 static void percpu_ref_call_confirm_rcu(struct rcu_head *rcu) in percpu_ref_call_confirm_rcu() argument 152 struct percpu_ref_data *data = container_of(rcu, in percpu_ref_call_confirm_rcu() 153 struct percpu_ref_data, rcu); in percpu_ref_call_confirm_rcu() 167 static void percpu_ref_switch_to_atomic_rcu(struct rcu_head *rcu) in percpu_ref_switch_to_atomic_rcu() argument 169 struct percpu_ref_data *data = container_of(rcu, in percpu_ref_switch_to_atomic_rcu() 170 struct percpu_ref_data, rcu); in percpu_ref_switch_to_atomic_rcu() 206 percpu_ref_call_confirm_rcu(rcu); in percpu_ref_switch_to_atomic_rcu() 233 call_rcu_hurry(&ref->data->rcu, in __percpu_ref_switch_to_atomic()
|
| H A D | bug.c | 72 guard(rcu)(); in module_find_bug() local 212 bool rcu = false; in report_bug() local 214 rcu = warn_rcu_enter(); in report_bug() 216 warn_rcu_exit(rcu); in report_bug() 234 scoped_guard(rcu) { in generic_bug_clear_once()
|
| /linux/tools/testing/radix-tree/ |
| H A D | regression1.c | 50 struct rcu_head rcu; member 66 static void page_rcu_free(struct rcu_head *rcu) in page_rcu_free() argument 68 struct page *p = container_of(rcu, struct page, rcu); in page_rcu_free() 76 call_rcu(&p->rcu, page_rcu_free); in page_free()
|
| /linux/net/openvswitch/ |
| H A D | flow_table.c | 127 static void rcu_free_flow_callback(struct rcu_head *rcu) in rcu_free_flow_callback() argument 129 struct sw_flow *flow = container_of(rcu, struct sw_flow, rcu); in rcu_free_flow_callback() 140 call_rcu(&flow->rcu, rcu_free_flow_callback); in ovs_flow_free() 182 static void mask_array_rcu_cb(struct rcu_head *rcu) in mask_array_rcu_cb() argument 184 struct mask_array *ma = container_of(rcu, struct mask_array, rcu); in mask_array_rcu_cb() 261 call_rcu(&old->rcu, mask_array_rcu_cb); in tbl_mask_array_realloc() 318 kfree_rcu(mask, rcu); in tbl_mask_array_del_mask() 351 static void mask_cache_rcu_cb(struct rcu_head *rcu) in mask_cache_rcu_cb() argument 353 struct mask_cache *mc = container_of(rcu, struct mask_cache, rcu); in mask_cache_rcu_cb() 405 call_rcu(&mc->rcu, mask_cache_rcu_cb); in ovs_flow_tbl_masks_cache_resize() [all …]
|
| H A D | vport-netdev.c | 143 static void vport_netdev_free(struct rcu_head *rcu) in vport_netdev_free() argument 145 struct vport *vport = container_of(rcu, struct vport, rcu); in vport_netdev_free() 168 call_rcu(&vport->rcu, vport_netdev_free); in netdev_destroy() 187 call_rcu(&vport->rcu, vport_netdev_free); in ovs_netdev_tunnel_destroy()
|
| /linux/Documentation/filesystems/ |
| H A D | path-lookup.txt | 36 even stores into cachelines of common dentries). This is known as "rcu-walk" 203 Inodes are also rcu freed, so the seqcount lookup dentry's inode may also be 212 Path walking code now has two distinct modes, ref-walk and rcu-walk. ref-walk 216 walking is operating on each dentry. rcu-walk uses seqcount based dentry 218 shared data in the dentry or inode. rcu-walk can not be applied to all cases, 219 eg. if the filesystem must sleep or perform non trivial operations, rcu-walk 226 path string, rcu-walk uses a d_seq protected snapshot. When looking up a 246 +---------------------+ rcu-walk begins here, we note d_seq, check the 273 Taking a refcount on a dentry from rcu-walk mode, by taking its d_lock, 275 "dropping rcu" or dropping from rcu-walk into ref-walk mode. [all …]
|
| /linux/fs/fuse/ |
| H A D | acl.c | 15 struct inode *inode, int type, bool rcu) in __fuse_get_acl() argument 22 if (rcu) in __fuse_get_acl() 79 struct posix_acl *fuse_get_inode_acl(struct inode *inode, int type, bool rcu) in fuse_get_inode_acl() argument 92 return __fuse_get_acl(fc, inode, type, rcu); in fuse_get_inode_acl()
|
| /linux/drivers/net/wireguard/ |
| H A D | allowedips.c | 51 static void node_free_rcu(struct rcu_head *rcu) in node_free_rcu() argument 53 kmem_cache_free(node_cache, container_of(rcu, struct allowedips_node, rcu)); in node_free_rcu() 56 static void root_free_rcu(struct rcu_head *rcu) in root_free_rcu() argument 59 container_of(rcu, struct allowedips_node, rcu) }; in root_free_rcu() 274 call_rcu(&node->rcu, node_free_rcu); in remove_node() 280 call_rcu(&parent->rcu, node_free_rcu); in remove_node() 316 call_rcu(&node->rcu, root_free_rcu); in wg_allowedips_free() 323 call_rcu(&node->rcu, root_free_rcu); in wg_allowedips_free()
|
| H A D | ratelimiter.c | 31 struct rcu_head rcu; member 41 static void entry_free(struct rcu_head *rcu) in entry_free() argument 44 container_of(rcu, struct ratelimiter_entry, rcu)); in entry_free() 51 call_rcu(&entry->rcu, entry_free); in entry_uninit()
|
| /linux/net/mac802154/ |
| H A D | llsec.h | 32 struct rcu_head rcu; member 44 struct rcu_head rcu; member 50 struct rcu_head rcu; member
|
| /linux/kernel/sched/ |
| H A D | ext_idle.c | 954 guard(rcu)(); in scx_bpf_cpu_node() local 983 guard(rcu)(); in scx_bpf_select_cpu_dfl() local 1023 guard(rcu)(); in scx_bpf_select_cpu_and() local 1046 guard(rcu)(); in scx_bpf_get_idle_cpumask_node() local 1070 guard(rcu)(); in scx_bpf_get_idle_cpumask() local 1101 guard(rcu)(); in scx_bpf_get_idle_smtmask_node() local 1129 guard(rcu)(); in scx_bpf_get_idle_smtmask() local 1178 guard(rcu)(); in scx_bpf_test_and_clear_cpu_idle() local 1217 guard(rcu)(); in scx_bpf_pick_idle_cpu_node() local 1257 guard(rcu)(); in scx_bpf_pick_idle_cpu() local [all …]
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_dep_scheduler.c | 35 struct rcu_head rcu; member 102 init_rcu_head(&dep_scheduler->rcu); in xe_dep_scheduler_create() 129 kfree_rcu(dep_scheduler, rcu); in xe_dep_scheduler_fini()
|
| /linux/Documentation/translations/zh_CN/core-api/ |
| H A D | kernel-api.rst | 360 kernel/rcu/tree.c 362 kernel/rcu/tree_exp.h 364 kernel/rcu/update.c 368 kernel/rcu/srcutree.c 378 kernel/rcu/sync.c
|