Skip to content

Commit

Permalink
dma-buf: further relax reservation_object_add_shared_fence
Browse files Browse the repository at this point in the history
Other cores don't busy wait any more and we removed the last user of checking
the seqno for changes. Drop updating the number for shared fences altogether.

Signed-off-by: Christian König <[email protected]>
Reviewed-by: Chris Wilson <[email protected]>
Link: https://patchwork.freedesktop.org/patch/322379/?series=64837&rev=1
  • Loading branch information
ChristianKoenigAMD committed Aug 10, 2019
1 parent dd7a7d1 commit 0e1d808
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 12 deletions.
6 changes: 0 additions & 6 deletions drivers/dma-buf/reservation.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,9 +237,6 @@ void reservation_object_add_shared_fence(struct reservation_object *obj,
fobj = reservation_object_get_list(obj);
count = fobj->shared_count;

preempt_disable();
write_seqcount_begin(&obj->seq);

for (i = 0; i < count; ++i) {

old = rcu_dereference_protected(fobj->shared[i],
Expand All @@ -257,9 +254,6 @@ void reservation_object_add_shared_fence(struct reservation_object *obj,
RCU_INIT_POINTER(fobj->shared[i], fence);
/* pointer update must be visible before we extend the shared_count */
smp_store_mb(fobj->shared_count, count);

write_seqcount_end(&obj->seq);
preempt_enable();
dma_fence_put(old);
}
EXPORT_SYMBOL(reservation_object_add_shared_fence);
Expand Down
7 changes: 1 addition & 6 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,12 +251,7 @@ static int amdgpu_amdkfd_remove_eviction_fence(struct amdgpu_bo *bo,
new->shared_max = old->shared_max;
new->shared_count = k;

/* Install the new fence list, seqcount provides the barriers */
preempt_disable();
write_seqcount_begin(&resv->seq);
RCU_INIT_POINTER(resv->fence, new);
write_seqcount_end(&resv->seq);
preempt_enable();
rcu_assign_pointer(resv->fence, new);

/* Drop the references to the removed fences or move them to ef_list */
for (i = j, k = 0; i < old->shared_count; ++i) {
Expand Down

0 comments on commit 0e1d808

Please sign in to comment.