Home
last modified time | relevance | path

Searched refs:fence (Results 1 – 9 of 9) sorted by relevance

/tools/testing/selftests/sync/
Dsync_stress_consumer.c40 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 …]
Dsync_alloc.c46 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()
Dsync_merge.c34 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()
Dsync_stress_merge.c43 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()
Dsync_fence.c34 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()
Dsync_stress_parallelism.c45 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()
Dsync.c49 __s32 fence; member
81 return data.fence; in sync_merge()
208 return data.fence; in sw_sync_fence_create()
/tools/memory-model/
Dlinux-kernel.cat43 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/
Dexplanation.txt22 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 …]