Shared semaphores for amdgpu
Dave Airlie
airlied at gmail.com
Fri Mar 10 04:43:24 UTC 2017
On 10 March 2017 at 14:27, Dave Airlie <airlied at gmail.com> wrote:
> On 10 March 2017 at 13:25, Dave Airlie <airlied at gmail.com> wrote:
>>>
>>> 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.
>
> Okay here's a first pass at what I think you mean, it's missing
> things, but the idea
> should be what you said.
(This version oopses of course due to NULL into sync_file_create,
but that should be tirival to fix next week,)
Dave.
More information about the amd-gfx
mailing list