RE: [Intel-gfx] [PATCH 2/3] dma-fence: use default wait function for mock fences

From: Ruhl, Michael J
Date: Mon May 11 2020 - 14:17:37 EST


>-----Original Message-----
>From: dri-devel <dri-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
>Ruhl, Michael J
>Sent: Monday, May 11, 2020 2:13 PM
>To: Daniel Vetter <daniel.vetter@xxxxxxxx>; LKML <linux-
>kernel@xxxxxxxxxxxxxxx>
>Cc: Intel Graphics Development <intel-gfx@xxxxxxxxxxxxxxxxxxxxx>; DRI
>Development <dri-devel@xxxxxxxxxxxxxxxxxxxxx>; linaro-mm-
>sig@xxxxxxxxxxxxxxxx; Vetter, Daniel <daniel.vetter@xxxxxxxxx>; linux-
>media@xxxxxxxxxxxxxxx
>Subject: RE: [Intel-gfx] [PATCH 2/3] dma-fence: use default wait function for
>mock fences
>
>>-----Original Message-----
>>From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
>>Daniel Vetter
>>Sent: Monday, May 11, 2020 5:12 AM
>>To: LKML <linux-kernel@xxxxxxxxxxxxxxx>
>>Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>; Intel Graphics Development
>><intel-gfx@xxxxxxxxxxxxxxxxxxxxx>; DRI Development <dri-
>>devel@xxxxxxxxxxxxxxxxxxxxx>; linaro-mm-sig@xxxxxxxxxxxxxxxx; Vetter, Daniel
>><daniel.vetter@xxxxxxxxx>; Sumit Semwal <sumit.semwal@xxxxxxxxxx>;
>linux-
>>media@xxxxxxxxxxxxxxx
>>Subject: [Intel-gfx] [PATCH 2/3] dma-fence: use default wait function for
>>mock fences
>>
>>No need to micro-optmize when we're waiting in a mocked object ...
>
>Makes sense to me.

/sigh.

Reading Chris comment, I am no longer sure it make sense...

Un-ack?

m

>Acked-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx>
>
>M
>
>>Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
>>Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx>
>>Cc: linux-media@xxxxxxxxxxxxxxx
>>Cc: linaro-mm-sig@xxxxxxxxxxxxxxxx
>>---
>> drivers/dma-buf/st-dma-fence.c | 41 ----------------------------------
>> 1 file changed, 41 deletions(-)
>>
>>diff --git a/drivers/dma-buf/st-dma-fence.c b/drivers/dma-buf/st-dma-
>>fence.c
>>index e593064341c8..8166d2984702 100644
>>--- a/drivers/dma-buf/st-dma-fence.c
>>+++ b/drivers/dma-buf/st-dma-fence.c
>>@@ -33,50 +33,9 @@ static void mock_fence_release(struct dma_fence *f)
>> kmem_cache_free(slab_fences, to_mock_fence(f));
>> }
>>
>>-struct wait_cb {
>>- struct dma_fence_cb cb;
>>- struct task_struct *task;
>>-};
>>-
>>-static void mock_wakeup(struct dma_fence *f, struct dma_fence_cb *cb)
>>-{
>>- wake_up_process(container_of(cb, struct wait_cb, cb)->task);
>>-}
>>-
>>-static long mock_wait(struct dma_fence *f, bool intr, long timeout)
>>-{
>>- const int state = intr ? TASK_INTERRUPTIBLE :
>>TASK_UNINTERRUPTIBLE;
>>- struct wait_cb cb = { .task = current };
>>-
>>- if (dma_fence_add_callback(f, &cb.cb, mock_wakeup))
>>- return timeout;
>>-
>>- while (timeout) {
>>- set_current_state(state);
>>-
>>- if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &f->flags))
>>- break;
>>-
>>- if (signal_pending_state(state, current))
>>- break;
>>-
>>- timeout = schedule_timeout(timeout);
>>- }
>>- __set_current_state(TASK_RUNNING);
>>-
>>- if (!dma_fence_remove_callback(f, &cb.cb))
>>- return timeout;
>>-
>>- if (signal_pending_state(state, current))
>>- return -ERESTARTSYS;
>>-
>>- return -ETIME;
>>-}
>>-
>> static const struct dma_fence_ops mock_ops = {
>> .get_driver_name = mock_name,
>> .get_timeline_name = mock_name,
>>- .wait = mock_wait,
>> .release = mock_fence_release,
>> };
>>
>>--
>>2.26.2
>>
>>_______________________________________________
>>Intel-gfx mailing list
>>Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
>>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>_______________________________________________
>dri-devel mailing list
>dri-devel@xxxxxxxxxxxxxxxxxxxxx
>https://lists.freedesktop.org/mailman/listinfo/dri-devel