| /kernel/linux/linux-6.6/Documentation/ |
| D | memory-barriers.txt | 2 LINUX KERNEL MEMORY BARRIERS 16 meant as a guide to using the various memory barriers provided by Linux, but 31 (2) to provide a guide as to how to use the barriers that are available. 51 (*) What are memory barriers? 54 - What may not be assumed about memory barriers? 55 - Address-dependency barriers (historical). 59 - Read memory barriers vs load speculation. 62 (*) Explicit kernel barriers. 65 - CPU memory barriers. 67 (*) Implicit kernel memory barriers. [all …]
|
| D | atomic_t.txt | 54 Barriers: 160 ORDERING (go read memory-barriers.txt first) 188 The barriers: 193 ordering inherent to the op. These barriers act almost like a full smp_mb(): 201 These helper barriers exist because architectures have varying implicit 203 provide full ordered atomics and these barriers are no-ops.
|
| /kernel/linux/linux-5.10/Documentation/ |
| D | memory-barriers.txt | 2 LINUX KERNEL MEMORY BARRIERS 16 meant as a guide to using the various memory barriers provided by Linux, but 31 (2) to provide a guide as to how to use the barriers that are available. 51 (*) What are memory barriers? 54 - What may not be assumed about memory barriers? 55 - Data dependency barriers (historical). 59 - Read memory barriers vs load speculation. 62 (*) Explicit kernel barriers. 65 - CPU memory barriers. 67 (*) Implicit kernel memory barriers. [all …]
|
| D | atomic_t.txt | 54 Barriers: 160 ORDERING (go read memory-barriers.txt first) 188 The barriers: 193 ordering inherent to the op. These barriers act almost like a full smp_mb(): 201 These helper barriers exist because architectures have varying implicit 203 provide full ordered atomics and these barriers are no-ops.
|
| /kernel/linux/linux-6.6/Documentation/core-api/wrappers/ |
| D | memory-barriers.rst | 2 This is a simple wrapper to bring memory-barriers.txt into the RST world 6 Linux kernel memory barriers 13 .. include:: ../../memory-barriers.txt
|
| /kernel/linux/linux-6.6/arch/mips/include/asm/ |
| D | sync.h | 13 * 1) Completion barriers, which ensure that a memory operation has actually 16 * 2) Ordering barriers, which only ensure that affected memory operations 20 * Ordering barriers can be more efficient than completion barriers, since: 22 * a) Ordering barriers only require memory access instructions which preceed 57 * we're satisfied that lightweight ordering barriers defined by MIPSr6 are 66 * barrier since 2010 & omit 'rmb' barriers because the CPUs don't perform
|
| /kernel/linux/linux-5.10/arch/mips/include/asm/ |
| D | sync.h | 13 * 1) Completion barriers, which ensure that a memory operation has actually 16 * 2) Ordering barriers, which only ensure that affected memory operations 20 * Ordering barriers can be more efficient than completion barriers, since: 22 * a) Ordering barriers only require memory access instructions which preceed 57 * we're satisfied that lightweight ordering barriers defined by MIPSr6 are 66 * barrier since 2010 & omit 'rmb' barriers because the CPUs don't perform
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | virtio_ring.h | 10 * Barriers in virtio are tricky. Non-SMP virtio guests can't assume 12 * barriers. Non-SMP virtio hosts could skip the barriers, but does 20 * CPUs) we do need real barriers. In theory, we could be using both
|
| D | atomic.h | 25 * See Documentation/memory-barriers.txt for ACQUIRE/RELEASE definitions. 36 * barriers on top of the relaxed variant. In the case where the relaxed 37 * variant is already fully ordered, no additional barriers are needed.
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | virtio_ring.h | 10 * Barriers in virtio are tricky. Non-SMP virtio guests can't assume 12 * barriers. Non-SMP virtio hosts could skip the barriers, but does 20 * CPUs) we do need real barriers. In theory, we could be using both
|
| D | atomic.h | 25 * See Documentation/memory-barriers.txt for ACQUIRE/RELEASE definitions. 36 * barriers on top of the relaxed variant. In the case where the relaxed 37 * variant is already fully ordered, no additional barriers are needed.
|
| /kernel/linux/linux-5.10/Documentation/core-api/ |
| D | atomic_ops.rst | 84 ``atomic_read()`` and ``atomic_set()`` DO NOT IMPLY BARRIERS! 86 Some architectures may choose to use the volatile keyword, barriers, or 156 and never changed later, so that memory barriers are not needed:: 179 Don't even -think- about doing this without proper use of memory barriers, 200 require any explicit memory barriers. They need only perform the 213 include explicit memory barriers that are performed before and after 268 atomic_xchg must provide explicit memory barriers around the operation. :: 277 atomic_cmpxchg must provide explicit memory barriers around the operation, 292 atomic_add_unless must provide explicit memory barriers around the 392 memory barriers in kfree_skb() that exposed the atomic_t memory barrier [all …]
|
| D | circular-buffers.rst | 15 (2) Memory barriers for when the producer and the consumer of objects in the 29 (*) Using memory barriers with circular buffers. 134 Using memory barriers with circular buffers 137 By using memory barriers in conjunction with circular buffers, you can avoid 236 See also Documentation/memory-barriers.txt for a description of Linux's memory
|
| /kernel/linux/linux-6.6/tools/memory-model/Documentation/ |
| D | ordering.txt | 11 1. Barriers (also known as "fences"). A barrier orders some or 30 Barriers 33 Each of the following categories of barriers is described in its own 36 a. Full memory barriers. 38 b. Read-modify-write (RMW) ordering augmentation barriers. 55 Full Memory Barriers 126 RMW Ordering Augmentation Barriers 238 Note that the barriers discussed previously use barrier() or its low-level 265 improved readability and performance compared to explicit barriers. 324 and readability compared to explicit barriers. For example, use of [all …]
|
| /kernel/linux/linux-6.6/tools/testing/selftests/bpf/benchs/ |
| D | bench_htab_mem.c | 106 pthread_barrier_t *barriers; in htab_mem_bench_init_barriers() local 113 barriers = calloc(nr, sizeof(*barriers)); in htab_mem_bench_init_barriers() 114 if (!barriers) in htab_mem_bench_init_barriers() 119 pthread_barrier_init(&barriers[i], NULL, 2); in htab_mem_bench_init_barriers() 121 ctx.notify = barriers; in htab_mem_bench_init_barriers()
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/gt/ |
| D | selftest_context.c | 70 /* Wait for all barriers to complete (remote CPU) before we check */ in context_sync() 214 * In GuC submission mode we don't use idle barriers and we instead in __live_active_context() 270 /* Now make sure our idle-barriers are flushed */ in __live_active_context() 291 "%s is still awake:%d after idle-barriers\n", in __live_active_context() 362 * Check that our idle barriers do not interfere with normal in __live_remote_context() 368 * In GuC submission mode we don't use idle barriers. in __live_remote_context()
|
| /kernel/linux/linux-5.10/include/asm-generic/bitops/ |
| D | instrumented-atomic.h | 21 * This is a relaxed atomic operation (no implied memory barriers). 37 * This is a relaxed atomic operation (no implied memory barriers). 50 * This is a relaxed atomic operation (no implied memory barriers).
|
| /kernel/linux/linux-6.6/Documentation/translations/sp_SP/wrappers/ |
| D | memory-barriers.rst | 2 This is a simple wrapper to bring memory-barriers.txt (Spanish 14 .. include:: ../memory-barriers.txt
|
| /kernel/linux/linux-6.6/include/asm-generic/bitops/ |
| D | instrumented-atomic.h | 21 * This is a relaxed atomic operation (no implied memory barriers). 37 * This is a relaxed atomic operation (no implied memory barriers). 50 * This is a relaxed atomic operation (no implied memory barriers).
|
| /kernel/linux/linux-5.10/Documentation/staging/ |
| D | index.rst | 46 Memory Barriers 53 .. include:: ../memory-barriers.txt
|
| /kernel/linux/linux-6.6/Documentation/core-api/ |
| D | circular-buffers.rst | 15 (2) Memory barriers for when the producer and the consumer of objects in the 29 (*) Using memory barriers with circular buffers. 134 Using memory barriers with circular buffers 137 By using memory barriers in conjunction with circular buffers, you can avoid 236 See also Documentation/memory-barriers.txt for a description of Linux's memory
|
| /kernel/linux/linux-5.10/Documentation/virt/kvm/ |
| D | vcpu-requests.rst | 177 [memory-barriers]_. 180 the memory barriers, allowing this requirement to be handled internally by 203 This solution also requires memory barriers to be placed carefully in both 204 the requesting thread and the receiving VCPU. With the memory barriers we 306 .. [memory-barriers] Documentation/memory-barriers.txt
|
| /kernel/linux/linux-5.10/kernel/sched/ |
| D | membarrier.c | 116 * Matches memory barriers around rq->curr modification in in membarrier_global_expedited() 167 * waiting for the last IPI. Matches memory barriers around in membarrier_global_expedited() 208 * Matches memory barriers around rq->curr modification in in membarrier_private_expedited() 285 * waiting for the last IPI. Matches memory barriers around in membarrier_private_expedited() 415 * sys_membarrier - issue memory barriers on a set of threads 439 * smp_mb() to represent explicit memory barriers forcing full memory
|
| /kernel/linux/linux-6.6/Documentation/virt/kvm/ |
| D | vcpu-requests.rst | 179 [memory-barriers]_. 182 the memory barriers, allowing this requirement to be handled internally by 205 This solution also requires memory barriers to be placed carefully in both 206 the requesting thread and the receiving VCPU. With the memory barriers we 293 .. [memory-barriers] Documentation/memory-barriers.txt
|
| /kernel/linux/linux-6.6/tools/virtio/asm/ |
| D | barrier.h | 15 /* Weak barriers should be used. If not - it's a bug */ 25 /* Weak barriers should be used. If not - it's a bug */
|