| /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/include/linux/ |
| H A D | preempt.h | 242 barrier(); \ 247 barrier(); \ 258 barrier(); \ 265 barrier(); \ 279 barrier(); \ 285 barrier(); \ 295 barrier(); \ 300 barrier(); \ 312 #define preempt_disable() barrier() 313 #define sched_preempt_enable_no_resched() barrier() [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 | 52 static pthread_barrier_t barrier, barrier2; in get_robust_list() 218 pthread_barrier_wait(&barrier); in TEST() 247 * Lets use a barrier to ensure that the child thread takes the lock 250 ret = pthread_barrier_init(&barrier, NULL, 2); in TEST() 256 pthread_barrier_wait(&barrier); in TEST() 268 pthread_barrier_destroy(&barrier); in TEST() 342 pthread_barrier_wait(&barrier); in TEST() 362 ret = pthread_barrier_init(&barrier, NULL, 2); in child_fn_lock_with_error() 369 pthread_barrier_wait(&barrier); in child_fn_lock_with_error() 378 pthread_barrier_destroy(&barrier); in child_fn_lock_with_error() 45 static pthread_barrier_t barrier, barrier2; global() variable [all...] |
| H A D | futex_wait_timeout.c | 26 static pthread_barrier_t barrier; variable 42 pthread_barrier_wait(&barrier); in get_pi_lock() 124 pthread_barrier_init(&barrier, NULL, 2); in TEST() 129 pthread_barrier_wait(&barrier); in TEST() 130 pthread_barrier_destroy(&barrier); in TEST()
|
| /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/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/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 | 12 /// Memory barrier orderings. 26 /// The annotation type for read-read barrier ordering. in smp_mb() 29 /// The annotation type for write-write barrier ordering. in smp_mb() 42 /// A compiler barrier. in smp_wmb() 44 /// A barrier that prevents compiler from reordering memory accesses across the barrier. in smp_wmb() 46 pub(crate) fn barrier() { in smp_wmb() 48 // it suffices as a compiler barrier. 63 // SAFETY: barrier methods are safe to call. 80 /// Memory barrier 14 pub(crate) fn barrier() { barrier() function [all...] |
| /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/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/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()
|
| /linux/arch/xtensa/include/asm/ |
| H A D | barrier.h | 15 #define __rmb() barrier() 25 #define __smp_mb__before_atomic() barrier() 26 #define __smp_mb__after_atomic() barrier()
|
| /linux/tools/testing/selftests/bpf/prog_tests/ |
| H A D | arena_spin_lock.c | 14 pthread_barrier_t barrier; variable 30 err = pthread_barrier_wait(&barrier); in spin_lock_thread() 72 ASSERT_OK(pthread_barrier_init(&barrier, NULL, nthreads), "barrier init"); in test_arena_spin_lock_size() 98 pthread_barrier_destroy(&barrier); in test_arena_spin_lock_size()
|
| /linux/tools/testing/selftests/bpf/ |
| H A D | bpf_atomic.h | |