Re: [PATCH 08/10] dma-buf/resv: replace shared fence with new fences container

Chris Wilson
2019-08-21T16:21:11Z

Quoting Christian König (2019-08-21 13:31:45)
> @@ -528,20 +352,9 @@ void dma_resv_prune_fences(struct dma_resv *obj)
> dma_fence_put(fence);
> }
>
> - list = dma_resv_get_list(obj);
> - if (!list)
> - return;
> -
> - for (i = 0; i < list->shared_count; ++i) {
> - fence = rcu_dereference_protected(list->shared[i],
> - dma_resv_held(obj));
> -
> - if (!dma_fence_is_signaled(fence))
> - continue;
> -
> - RCU_INIT_POINTER(list->shared[i], dma_fence_get_stub());
> - dma_fence_put(fence);
> - }
> + fence = dma_resv_fences_deref(obj, &obj->readers);
> + if (dma_fence_is_signaled(fence))
> + dma_resv_fences_set(obj, &obj->readers, NULL);

Needs fence==NULL safeguards.

It's not as pruny as it was before. Or did you add some magic to
fence-array?
-Chris