[PATCH 8/8] amdgpu: use sync file for shared semaphores (v3)

Chris Wilson chris at chris-wilson.co.uk
Wed Apr 12 10:18:55 UTC 2017


On Wed, Apr 12, 2017 at 11:55:24AM +0200, Christian König wrote:
> Am 12.04.2017 um 06:57 schrieb Dave Airlie:
> >+static int amdgpu_sem_lookup_and_remove(struct amdgpu_cs_parser *p,
> >+				      uint32_t handle)
> >+{
> >+	int r;
> >+	struct dma_fence *old_fence;
> >+
> >+	r = drm_syncobj_replace_fence(p->filp, handle, NULL);
> >+	if (r)
> >+		return r;
> >+	dma_fence_put(old_fence);
> 
> Am I wrong or is old_fence not initialized here?
> 
> Additional to that what happens when the fence in the sync object
> was changed while we do the CS? Or even worse the handle got
> assigned to a new sync object.

We either ww_mutex the lot, or regard that as a userspace race where the
order between the two concurrent CS emits is undefined and who gets the
in-semaphore is happenstance.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the amd-gfx mailing list