| /linux/include/linux/ |
| H A D | spinlock_up.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) 64 # define arch_spin_lock(lock) do { barrier(); (void)(lock); } while (0) [all …]
|
| /linux/arch/arm64/include/asm/ |
| H A D | irqflags.h | 25 barrier(); in __daif_local_irq_enable() 27 barrier(); in __daif_local_irq_enable() 37 barrier(); in __pmr_local_irq_enable() 40 barrier(); in __pmr_local_irq_enable() 54 barrier(); in __daif_local_irq_disable() 56 barrier(); in __daif_local_irq_disable() 66 barrier(); in __pmr_local_irq_disable() 68 barrier(); in __pmr_local_irq_disable() 174 barrier(); in __daif_local_irq_restore() 176 barrier(); in __daif_local_irq_restore() [all …]
|
| H A D | hardirq.h | 51 barrier(); \ 57 barrier(); \ 75 barrier(); \ 83 barrier(); \
|
| /linux/Documentation/scheduler/ |
| H A D | membarrier.rst | 14 require each architecture to have a full memory barrier after coming from 15 user-space, before updating rq->curr. This barrier is implied by the sequence 16 rq_lock(); smp_mb__after_spinlock() in __schedule(). The barrier matches a full 17 barrier in the proximity of the membarrier system call exit, cf. 24 require each architecture to have a full memory barrier after updating rq->curr, 25 before returning to user-space. The schemes providing this barrier on the various 28 - alpha, arc, arm, hexagon, mips rely on the full barrier implied by 31 - arm64 relies on the full barrier implied by switch_to(). 33 - powerpc, riscv, s390, sparc, x86 rely on the full barrier implied by 34 switch_mm(), if mm is not NULL; they rely on the full barrier implied [all …]
|
| /linux/tools/virtio/ringtest/ |
| H A D | main.h | 92 #define barrier() asm volatile("" ::: "memory") macro 98 #define cpu_relax() barrier() 113 barrier(); in busy_wait() 133 barrier(); \ 139 barrier(); \ 143 #define smp_wmb() barrier() 163 barrier(); in __read_once_size() 165 barrier(); in __read_once_size() 177 barrier(); in __write_once_size() 179 barrier(); in __write_once_size()
|
| /linux/tools/testing/selftests/futex/functional/ |
| H A D | robust_list.c | 45 static pthread_barrier_t barrier, barrier2; variable 189 pthread_barrier_wait(&barrier); in child_fn_lock() 221 ret = pthread_barrier_init(&barrier, NULL, 2); in TEST() 227 pthread_barrier_wait(&barrier); in TEST() 239 pthread_barrier_destroy(&barrier); in TEST() 316 pthread_barrier_wait(&barrier); in child_list() 336 ret = pthread_barrier_init(&barrier, NULL, 2); in TEST() 343 pthread_barrier_wait(&barrier); in TEST() 352 pthread_barrier_destroy(&barrier); in TEST() 378 pthread_barrier_wait(&barrier); in child_fn_lock_with_error() [all …]
|
| /linux/arch/s390/include/asm/ |
| H A D | barrier.h | 32 #define __rmb() barrier() 33 #define __wmb() barrier() 43 barrier(); \ 51 barrier(); \ 55 #define __smp_mb__before_atomic() barrier() 56 #define __smp_mb__after_atomic() barrier()
|
| /linux/include/asm-generic/ |
| H A D | barrier.h | 61 #define mb() barrier() 113 #define smp_mb() barrier() 117 #define smp_rmb() barrier() 121 #define smp_wmb() barrier() 182 #define smp_store_mb(var, value) do { WRITE_ONCE(var, value); barrier(); } while (0) 186 #define smp_mb__before_atomic() barrier() 190 #define smp_mb__after_atomic() barrier() 196 barrier(); \ 205 barrier(); \
|
| /linux/arch/powerpc/kernel/ |
| H A D | smp-tbsync.c | 53 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()
|
| /linux/arch/alpha/include/asm/ |
| H A D | irqflags.h | 35 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/tools/virtio/asm/ |
| H A D | barrier.h | 4 #define barrier() asm volatile("" ::: "memory") macro 6 #define virt_rmb() barrier() 7 #define virt_wmb() barrier() 13 barrier(); \ 30 #error Please fill in barrier macros
|
| /linux/drivers/md/dm-vdo/indexer/ |
| H A D | sparse-cache.c | 169 static void initialize_threads_barrier(struct threads_barrier *barrier, in initialize_threads_barrier() argument 172 sema_init(&barrier->lock, 1); in initialize_threads_barrier() 173 barrier->arrived = 0; in initialize_threads_barrier() 174 barrier->thread_count = thread_count; in initialize_threads_barrier() 175 sema_init(&barrier->wait, 0); in initialize_threads_barrier() 199 static void enter_threads_barrier(struct threads_barrier *barrier) in enter_threads_barrier() argument 201 __down(&barrier->lock); in enter_threads_barrier() 202 if (++barrier->arrived == barrier->thread_count) { in enter_threads_barrier() 206 for (i = 1; i < barrier->thread_count; i++) in enter_threads_barrier() 207 up(&barrier->wait); in enter_threads_barrier() [all …]
|
| /linux/tools/build/feature/ |
| H A D | test-pthread-barrier.c | 7 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()
|
| /linux/tools/testing/selftests/powerpc/dscr/ |
| H A D | dscr_explicit_test.c | 92 pthread_barrier_t *barrier; member 103 err = pthread_barrier_wait(args->barrier); in dscr_explicit_random_thread() 136 pthread_barrier_t barrier; in dscr_explicit_random_test() local 140 FAIL_IF(pthread_barrier_init(&barrier, NULL, THREADS)); in dscr_explicit_random_test() 144 threads[i].barrier = &barrier; in dscr_explicit_random_test() 153 FAIL_IF(pthread_barrier_destroy(&barrier)); in dscr_explicit_random_test()
|
| H A D | dscr_default_test.c | 76 pthread_barrier_t *barrier; member 88 err = pthread_barrier_wait(args->barrier); in dscr_default_random_thread() 125 pthread_barrier_t barrier; in dscr_default_random_test() local 132 FAIL_IF(pthread_barrier_init(&barrier, NULL, THREADS)); in dscr_default_random_test() 139 threads[i].barrier = &barrier; in dscr_default_random_test() 148 FAIL_IF(pthread_barrier_destroy(&barrier)); in dscr_default_random_test()
|
| /linux/rust/kernel/sync/ |
| H A D | barrier.rs | 14 pub(crate) fn barrier() { in barrier() function 31 barrier(); in smp_mb() 45 barrier(); in smp_wmb() 59 barrier(); in smp_rmb()
|
| /linux/arch/parisc/include/asm/ |
| H A D | barrier.h | 22 #define mb() barrier() 23 #define rmb() barrier() 24 #define wmb() barrier() 25 #define dma_rmb() barrier() 26 #define dma_wmb() barrier()
|
| /linux/tools/arch/x86/include/asm/ |
| H A D | barrier.h | 27 #define smp_rmb() barrier() 28 #define smp_wmb() barrier() 35 barrier(); \ 42 barrier(); \
|
| /linux/arch/sparc/include/asm/ |
| H A D | barrier_64.h | 44 barrier(); \ 52 barrier(); \ 56 #define __smp_mb__before_atomic() barrier() 57 #define __smp_mb__after_atomic() barrier()
|
| /linux/tools/testing/selftests/vfio/ |
| H A D | vfio_pci_device_init_perf_test.c | 22 pthread_barrier_t *barrier; member 27 pthread_barrier_t barrier; in FIXTURE() local 51 pthread_barrier_init(&self->barrier, NULL, nr_devices); in FIXTURE_SETUP() 55 self->thread_args[i].barrier = &self->barrier; in FIXTURE_SETUP() 102 pthread_barrier_wait(args->barrier); in thread_main() 108 pthread_barrier_wait(args->barrier); in thread_main()
|
| /linux/arch/arm/include/asm/ |
| H A D | barrier.h | 70 #define mb() barrier() 71 #define rmb() barrier() 72 #define wmb() barrier() 73 #define dma_rmb() barrier() 74 #define dma_wmb() barrier()
|
| /linux/Documentation/ |
| H A D | memory-barriers.txt | 29 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/tools/testing/selftests/perf_events/ |
| H A D | sigtrap_threads.c | 89 pthread_barrier_t *barrier = (pthread_barrier_t *)arg; in test_thread() local 94 pthread_barrier_wait(barrier); in test_thread() 114 pthread_barrier_t barrier; in FIXTURE() local 137 pthread_barrier_init(&self->barrier, NULL, NUM_THREADS + 1); in FIXTURE_SETUP() 139 ASSERT_EQ(pthread_create(&self->threads[i], NULL, test_thread, &self->barrier), 0); in FIXTURE_SETUP() 144 pthread_barrier_destroy(&self->barrier); in FIXTURE_TEARDOWN() 154 pthread_barrier_wait(&self->barrier); in run_test_threads() 225 pthread_barrier_wait(&self->barrier); in TEST_F()
|
| /linux/arch/arm/mach-rpc/ |
| H A D | time.c | 37 barrier (); in ioc_timer_read() 39 barrier (); in ioc_timer_read() 41 barrier (); in ioc_timer_read() 43 barrier (); in ioc_timer_read()
|
| /linux/tools/testing/selftests/bpf/progs/ |
| H A D | loop5.c | 20 barrier(); in while_true() 23 barrier(); in while_true() 26 barrier(); in while_true()
|