Home
last modified time | relevance | path

Searched full:barrier (Results 1 – 25 of 1143) sorted by relevance

12345678910>>...46

/Linux-v5.10/tools/include/asm/
Dbarrier.h4 #include "../../arch/x86/include/asm/barrier.h"
6 #include "../../arch/arm/include/asm/barrier.h"
8 #include "../../arch/arm64/include/asm/barrier.h"
10 #include "../../arch/powerpc/include/asm/barrier.h"
12 #include "../../arch/s390/include/asm/barrier.h"
14 #include "../../arch/sh/include/asm/barrier.h"
16 #include "../../arch/sparc/include/asm/barrier.h"
18 #include "../../arch/tile/include/asm/barrier.h"
20 #include "../../arch/alpha/include/asm/barrier.h"
22 #include "../../arch/mips/include/asm/barrier.h"
[all …]
/Linux-v5.10/include/linux/
Dspinlock_up.h9 #include <asm/barrier.h>
32 barrier(); in arch_spin_lock()
40 barrier(); in arch_spin_trylock()
47 barrier(); in arch_spin_unlock()
54 #define arch_read_lock(lock) do { barrier(); (void)(lock); } while (0)
55 #define arch_write_lock(lock) do { barrier(); (void)(lock); } while (0)
56 #define arch_read_trylock(lock) ({ barrier(); (void)(lock); 1; })
57 #define arch_write_trylock(lock) ({ barrier(); (void)(lock); 1; })
58 #define arch_read_unlock(lock) do { barrier(); (void)(lock); } while (0)
59 #define arch_write_unlock(lock) do { barrier(); (void)(lock); } while (0)
[all …]
Dpreempt.h172 barrier(); \
177 barrier(); \
188 barrier(); \
195 barrier(); \
209 barrier(); \
215 barrier(); \
225 barrier(); \
230 barrier(); \
242 #define preempt_disable() barrier()
243 #define sched_preempt_enable_no_resched() barrier()
[all …]
Dcompiler-intel.h16 #define barrier() __memory_barrier() macro
17 #define barrier_data(ptr) barrier()
24 /* This should act as an optimization barrier on var.
25 * Given that this compiler does not have inline assembly, a compiler barrier
28 #define OPTIMIZER_HIDE_VAR(var) barrier()
/Linux-v5.10/Documentation/
Dmemory-barriers.txt29 particular barrier, and
34 for any particular barrier, but if the architecture provides less than
37 Note also that it is possible that a barrier may be a no-op for an
38 architecture because the way that arch works renders an explicit barrier
53 - Varieties of memory barrier.
57 - SMP barrier pairing.
58 - Examples of memory barrier sequences.
64 - Compiler barrier.
74 (*) Inter-CPU acquiring barrier effects.
85 (*) Kernel I/O barrier effects.
[all …]
/Linux-v5.10/arch/sparc/include/asm/
Dbarrier_64.h6 * #51. Essentially, if a memory barrier occurs soon after a mispredicted
10 * It used to be believed that the memory barrier had to be right in the
11 * delay slot, but a case has been traced recently wherein the memory barrier
23 * the memory barrier explicitly into a "branch always, predicted taken"
44 barrier(); \
52 barrier(); \
56 #define __smp_mb__before_atomic() barrier()
57 #define __smp_mb__after_atomic() barrier()
59 #include <asm-generic/barrier.h>
/Linux-v5.10/arch/mips/include/asm/
Dsync.h11 * Two types of barrier are provided:
18 * restrictions imposed by the barrier.
31 * b) Multiple variants of ordering barrier are provided which allow the
34 * than a barrier are observed prior to stores that are younger than a
35 * barrier & don't care about the ordering of loads then the 'wmb'
36 * ordering barrier can be used. Limiting the barrier's effects to stores
49 * A full completion barrier; all memory accesses appearing prior to this sync
56 * For now we use a full completion barrier to implement all sync types, until
66 * barrier since 2010 & omit 'rmb' barriers because the CPUs don't perform
104 * don't implicitly provide a memory barrier. In general this is most MIPS
[all …]
Dbarrier.h86 # define __smp_mb() barrier()
87 # define __smp_rmb() barrier()
88 # define __smp_wmb() barrier()
92 * When LL/SC does imply order, it must also be a compiler barrier to avoid the
124 * a completion barrier immediately preceding the LL instruction. Therefore we
125 * can skip emitting a barrier from __smp_mb__before_atomic().
140 #include <asm-generic/barrier.h>
/Linux-v5.10/arch/csky/include/asm/
Dbarrier.h12 * sync: completion barrier, all sync.xx instructions
19 * bar.brwarw: ordering barrier for all load/store instructions before it
20 * bar.brwarws: ordering barrier for all load/store instructions before it
22 * bar.brar: ordering barrier for all load instructions before it
23 * bar.brars: ordering barrier for all load instructions before it
25 * bar.bwaw: ordering barrier for all store instructions before it
26 * bar.bwaws: ordering barrier for all store instructions before it
45 #include <asm-generic/barrier.h>
/Linux-v5.10/tools/virtio/ringtest/
Dmain.h90 /* Compiler barrier - similar to what Linux uses */
91 #define barrier() asm volatile("" ::: "memory") macro
97 #define cpu_relax() barrier()
110 barrier(); in busy_wait()
125 * adds a compiler barrier.
128 barrier(); \
134 barrier(); \
138 #define smp_wmb() barrier()
158 barrier(); \ in __read_once_size()
160 barrier(); \ in __read_once_size()
[all …]
Dvirtio_ring_0_9.c133 /* Barrier A (for pairing) */ in add_inbuf()
140 /* Barrier A (for pairing) */ in add_inbuf()
145 /* Barrier A (for pairing) */ in add_inbuf()
163 /* Barrier B (for pairing) */ in get_buf()
169 /* Barrier B (for pairing) */ in get_buf()
221 /* Barrier D (for pairing) */ in enable_call()
231 /* Barrier C (for pairing) */ in kick_available()
253 /* Barrier C (for pairing) */ in enable_kick()
280 /* Barrier A (for pairing) */ in use_buf()
289 /* Barrier A (for pairing) */ in use_buf()
[all …]
Dring.c130 * add an explicit full barrier to avoid this. in add_inbuf()
132 barrier(); in add_inbuf()
136 /* Barrier A (for pairing) */ in add_inbuf()
151 /* Barrier B (for pairing) */ in get_buf()
182 /* Barrier D (for pairing) */ in enable_call()
192 /* Barrier C (for pairing) */ in kick_available()
214 /* Barrier C (for pairing) */ in enable_kick()
234 /* Barrier A (for pairing) */ in use_buf()
247 /* Barrier B (for pairing) */ in use_buf()
259 /* Barrier D (for pairing) */ in call_used()
/Linux-v5.10/include/asm-generic/
Dbarrier.h3 * Generic barrier definitions.
31 #define mb() barrier()
79 #define smp_mb() barrier()
83 #define smp_rmb() barrier()
87 #define smp_wmb() barrier()
148 #define smp_store_mb(var, value) do { WRITE_ONCE(var, value); barrier(); } while (0)
152 #define smp_mb__before_atomic() barrier()
156 #define smp_mb__after_atomic() barrier()
163 barrier(); \
173 barrier(); \
[all …]
/Linux-v5.10/arch/s390/include/asm/
Dbarrier.h26 #define rmb() barrier()
27 #define wmb() barrier()
37 barrier(); \
45 barrier(); \
49 #define __smp_mb__before_atomic() barrier()
50 #define __smp_mb__after_atomic() barrier()
76 #include <asm-generic/barrier.h>
/Linux-v5.10/arch/arc/include/asm/
Dbarrier.h15 * Explicit barrier provided by DMB instruction
19 * - DMB guarantees SMP as well as local barrier semantics
20 * (asm-generic/barrier.h ensures sane smp_*mb if not defined here, i.e.
21 * UP: barrier(), SMP: smp_*mb == *mb)
23 * in the general case. Plus it only provides full barrier.
42 #include <asm-generic/barrier.h>
/Linux-v5.10/arch/ia64/include/asm/
Dbarrier.h3 * Memory barrier definitions. This is based on information published
48 #define __smp_mb__before_atomic() barrier()
49 #define __smp_mb__after_atomic() barrier()
59 barrier(); \
67 barrier(); \
72 * The group barrier in front of the rsm & ssm are necessary to ensure
77 #include <asm-generic/barrier.h>
/Linux-v5.10/arch/mips/mm/
Dtlb-r3k.c32 #define BARRIER \ macro
51 entry++; /* BARRIER */ in local_flush_tlb_from()
96 start += PAGE_SIZE; /* BARRIER */ in local_flush_tlb_range()
101 if (idx < 0) /* BARRIER */ in local_flush_tlb_range()
133 start += PAGE_SIZE; /* BARRIER */ in local_flush_tlb_kernel_range()
138 if (idx < 0) /* BARRIER */ in local_flush_tlb_kernel_range()
166 BARRIER; in local_flush_tlb_page()
171 if (idx < 0) /* BARRIER */ in local_flush_tlb_page()
205 BARRIER; in __update_tlb()
210 if (idx < 0) { /* BARRIER */ in __update_tlb()
[all …]
/Linux-v5.10/tools/arch/sparc/include/asm/
Dbarrier_64.h8 * #51. Essentially, if a memory barrier occurs soon after a mispredicted
12 * It used to be believed that the memory barrier had to be right in the
13 * delay slot, but a case has been traced recently wherein the memory barrier
25 * the memory barrier explicitly into a "branch always, predicted taken"
45 barrier(); \
52 barrier(); \
/Linux-v5.10/Documentation/core-api/
Datomic_ops.rst44 proper implicit or explicit read memory barrier is needed before reading the
65 or explicit memory barrier is needed before the value set with the operation
75 implicit or explicit memory barrier is used after possible runtime
80 barrier.
92 appropriate compiler and/or memory barrier for each use case. Failure
124 Alternatively, you could place a barrier() call in the loop.
184 ``READ_ONCE()`` OR ``WRITE_ONCE()`` DO NOT IMPLY A BARRIER!
222 memory barrier semantics which satisfy the above requirements, that is
232 This means that like atomic_{inc,dec}_return(), the memory barrier
244 Again, these primitives provide explicit memory barrier semantics around
[all …]
/Linux-v5.10/arch/x86/include/asm/
Dbarrier.h51 /* Prevent speculative execution past this barrier. */
54 #define dma_rmb() barrier()
55 #define dma_wmb() barrier()
63 #define __smp_wmb() barrier()
69 barrier(); \
77 barrier(); \
85 #include <asm-generic/barrier.h>
/Linux-v5.10/tools/virtio/asm/
Dbarrier.h4 #define barrier() asm volatile("" ::: "memory") macro
6 #define virt_rmb() barrier()
7 #define virt_wmb() barrier()
13 barrier(); \
20 #error Please fill in barrier macros
/Linux-v5.10/arch/powerpc/kernel/
Dsmp-tbsync.c53 barrier(); in smp_generic_take_timebase()
59 barrier(); in smp_generic_take_timebase()
70 barrier(); in smp_generic_take_timebase()
96 barrier(); in start_contest()
99 barrier(); in start_contest()
104 barrier(); in start_contest()
125 barrier(); in smp_generic_give_timebase()
166 barrier(); in smp_generic_give_timebase()
Dsecurity.c55 * functions as a barrier), but on which the hypervisor (KVM/Qemu) has in setup_barrier_nospec()
56 * not been updated, we would like to enable the barrier. Dropping the in setup_barrier_nospec()
58 * we potentially enable the barrier on systems where the host firmware in setup_barrier_nospec()
191 seq_buf_printf(&s, ", ori31 speculation barrier enabled"); in cpu_show_spectre_v1()
248 * Store-forwarding barrier support.
257 pr_info("stf-barrier: disabled on command line."); in handle_no_stf_barrier()
268 /* Until firmware tells us, we have the barrier with auto */ in handle_ssbd()
320 pr_info("stf-barrier: fallback barrier available\n"); in setup_stf_barrier()
322 pr_info("stf-barrier: hwsync barrier available\n"); in setup_stf_barrier()
324 pr_info("stf-barrier: eieio barrier available\n"); in setup_stf_barrier()
[all …]
/Linux-v5.10/arch/alpha/include/asm/
Dirqflags.h35 barrier(); in arch_local_irq_disable()
41 barrier(); in arch_local_irq_save()
47 barrier(); in arch_local_irq_enable()
53 barrier(); in arch_local_irq_restore()
55 barrier(); in arch_local_irq_restore()
/Linux-v5.10/tools/build/feature/
Dtest-pthread-barrier.c7 pthread_barrier_t barrier; in main() local
9 pthread_barrier_init(&barrier, NULL, 1); in main()
10 pthread_barrier_wait(&barrier); in main()
11 return pthread_barrier_destroy(&barrier); in main()

12345678910>>...46