Shared semaphores for amdgpu

Dave Airlie airlied at
Fri Mar 10 03:25:42 UTC 2017

> As far as I can see the only functionality we are missing here is:
> void sync_file_signal(struct sync_file *sync_file, struct dma_fence *fence)
> {
>     dma_fence_put(sync_file->fence);
>     sync_file->fence = fence;
> }
> We probably should do this atomically, but that is only a matter of taking
> locks/atomic pointer operation.
> The waiting is done using the normal sync_file_get_fence() function.
> The rest is David's patch to import/export the fd handle into a local idr
> based handle.

Are you suggesting we start keeping track of sync_file objects in a local idr?

As currently they are only tracked as files, which is probably not what we want
for every unshared semaphore, or are you thinking more that the amdgpu local
sem should be just storing a sync_file pointer, rather than what it does now.


More information about the amd-gfx mailing list