/tools/testing/selftests/sync/ |
D | sync_stress_consumer.c | 40 static int busy_wait_on_fence(int fence) in busy_wait_on_fence() argument 45 error = sync_fence_count_with_status(fence, FENCE_STATUS_ERROR); in busy_wait_on_fence() 47 active = sync_fence_count_with_status(fence, in busy_wait_on_fence() 66 int fence, valid, i; in mpsc_producer_thread() local 72 fence = sw_sync_fence_create(consumer_timeline, "fence", i); in mpsc_producer_thread() 73 valid = sw_sync_fence_is_valid(fence); in mpsc_producer_thread() 82 ASSERT(sync_wait(fence, -1) > 0, in mpsc_producer_thread() 85 ASSERT(busy_wait_on_fence(fence) == 0, in mpsc_producer_thread() 100 sw_sync_fence_destroy(fence); in mpsc_producer_thread() 108 int fence, merged, tmp, valid, it, i; in mpcs_consumer_thread() local [all …]
|
D | sync_alloc.c | 46 int timeline, fence, valid; in test_alloc_fence() local 52 fence = sw_sync_fence_create(timeline, "allocFence", 1); in test_alloc_fence() 53 valid = sw_sync_fence_is_valid(fence); in test_alloc_fence() 56 sw_sync_fence_destroy(fence); in test_alloc_fence() 63 int fence, timeline; in test_alloc_fence_negative() local 68 fence = sw_sync_fence_create(-1, "fence", 1); in test_alloc_fence_negative() 69 ASSERT(fence < 0, "Success allocating negative fence\n"); in test_alloc_fence_negative() 71 sw_sync_fence_destroy(fence); in test_alloc_fence_negative()
|
D | sync_merge.c | 34 int fence, valid, merged; in test_fence_merge_same_fence() local 40 fence = sw_sync_fence_create(timeline, "allocFence", 5); in test_fence_merge_same_fence() 41 valid = sw_sync_fence_is_valid(fence); in test_fence_merge_same_fence() 44 merged = sync_merge("mergeFence", fence, fence); in test_fence_merge_same_fence() 45 valid = sw_sync_fence_is_valid(fence); in test_fence_merge_same_fence() 56 sw_sync_fence_destroy(fence); in test_fence_merge_same_fence()
|
D | sync_stress_merge.c | 43 int fence, tmpfence, merged, valid; in test_merge_stress_random_merge() local 51 fence = sw_sync_fence_create(timelines[0], "fence", 0); in test_merge_stress_random_merge() 52 valid = sw_sync_fence_is_valid(fence); in test_merge_stress_random_merge() 76 merged = sync_merge("merge", tmpfence, fence); in test_merge_stress_random_merge() 78 sw_sync_fence_destroy(fence); in test_merge_stress_random_merge() 79 fence = merged; in test_merge_stress_random_merge() 91 ASSERT(sync_fence_size(fence) == size, in test_merge_stress_random_merge() 97 ret = sync_wait(fence, 0); in test_merge_stress_random_merge() 106 ret = sync_wait(fence, 0); in test_merge_stress_random_merge() 109 sw_sync_fence_destroy(fence); in test_merge_stress_random_merge()
|
D | sync_fence.c | 34 int fence, valid, ret; in test_fence_one_timeline_wait() local 40 fence = sw_sync_fence_create(timeline, "allocFence", 5); in test_fence_one_timeline_wait() 41 valid = sw_sync_fence_is_valid(fence); in test_fence_one_timeline_wait() 45 ret = sync_wait(fence, 0); in test_fence_one_timeline_wait() 53 ret = sync_wait(fence, 0); in test_fence_one_timeline_wait() 61 ret = sync_wait(fence, 0); in test_fence_one_timeline_wait() 67 ret = sync_wait(fence, 0); in test_fence_one_timeline_wait() 70 sw_sync_fence_destroy(fence); in test_fence_one_timeline_wait()
|
D | sync_stress_parallelism.c | 45 int fence, valid, ret, i; in test_stress_two_threads_shared_timeline_thread() local 48 fence = sw_sync_fence_create(timeline, "fence", in test_stress_two_threads_shared_timeline_thread() 50 valid = sw_sync_fence_is_valid(fence); in test_stress_two_threads_shared_timeline_thread() 54 ret = sync_wait(fence, -1); in test_stress_two_threads_shared_timeline_thread() 69 sw_sync_fence_destroy(fence); in test_stress_two_threads_shared_timeline_thread()
|
D | sync.c | 49 __s32 fence; member 81 return data.fence; in sync_merge() 208 return data.fence; in sw_sync_fence_create()
|
/tools/memory-model/ |
D | linux-kernel.cat | 43 let strong-fence = mb | gp 45 let nonrw-fence = strong-fence | po-rel | acq-po 46 let fence = nonrw-fence | wmb | rmb 73 let ppo = to-r | to-w | fence | (po-unlock-rf-lock-po & int) 77 let cumul-fence = [Marked] ; (A-cumul(strong-fence | po-rel) | wmb | 79 let prop = [Marked] ; (overwrite & ext)? ; cumul-fence* ; 90 (* Write and fence propagation ordering *) 93 (* Propagation: Each non-rf link needs a strong fence. *) 94 let pb = prop ; strong-fence ; hb* ; [Marked] 106 * In the definition of rcu-fence below, the po term at the left-hand side [all …]
|
/tools/memory-model/Documentation/ |
D | explanation.txt | 22 14. PROPAGATION ORDER RELATION: cumul-fence 30 22. RCU RELATIONS: rcu-link, rcu-gp, rcu-rscsi, rcu-order, rcu-fence, and rb 303 a fence. This happens with functions like smp_load_acquire() or 350 read, write, and fence events used by the model are close in spirit to 771 Executing a fence (or memory barrier) instruction doesn't require a 773 about the fence. However, fences do constrain the way CPUs and the 776 First, a fence forces the CPU to execute various instructions in 778 type of fence: 791 execute the load associated with the fence (e.g., the load 797 associated with the fence (e.g., the store part of an [all …]
|