[PATCH 2/3] drm/virtio: rework virtio_fence_signaled

Anthoine Bourgeois anthoine.bourgeois at gmail.com
Wed Nov 25 09:48:09 UTC 2020


On Mon, Nov 23, 2020 at 06:19:01PM -0800, Gurchetan Singh wrote:
>virtio_gpu_fence_event_process sets the last_fence_id and
>subsequently calls dma_fence_signal_locked(..).
>
>dma_fence_signal_locked(..) sets DMA_FENCE_FLAG_SIGNALED_BIT,
>which is actually checked before &dma_fence_ops.(*signaled) is
>called.
>
>The check for last_fence_id is therefore a bit redundant, and
>it will not be sufficient to check the last_fence_id for multiple
>synchronization timelines.  Remove it.
>
>Signed-off-by: Gurchetan Singh <gurchetansingh at chromium.org>
Reviewed-by: Anthoine Bourgeois <anthoine.bourgeois at gmail.com>
>---
> drivers/gpu/drm/virtio/virtgpu_fence.c | 12 ++++--------
> 1 file changed, 4 insertions(+), 8 deletions(-)
>
>diff --git a/drivers/gpu/drm/virtio/virtgpu_fence.c b/drivers/gpu/drm/virtio/virtgpu_fence.c
>index 586034c90587..b35fcd1d02d7 100644
>--- a/drivers/gpu/drm/virtio/virtgpu_fence.c
>+++ b/drivers/gpu/drm/virtio/virtgpu_fence.c
>@@ -42,14 +42,10 @@ static const char *virtio_gpu_get_timeline_name(struct dma_fence *f)
>
> static bool virtio_gpu_fence_signaled(struct dma_fence *f)
> {
>-	struct virtio_gpu_fence *fence = to_virtio_gpu_fence(f);
>-
>-	if (WARN_ON_ONCE(fence->f.seqno == 0))
>-		/* leaked fence outside driver before completing
>-		 * initialization with virtio_gpu_fence_emit */
>-		return false;
>-	if (atomic64_read(&fence->drv->last_fence_id) >= fence->f.seqno)
>-		return true;
>+	/* leaked fence outside driver before completing
>+	 * initialization with virtio_gpu_fence_emit.
>+	 */
>+	WARN_ON_ONCE(f->seqno == 0);
> 	return false;
> }
>
>-- 
>2.29.2.454.gaff20da3a2-goog
>
>_______________________________________________
>dri-devel mailing list
>dri-devel at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list