[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <105c02b5-f18d-cd08-bffa-93033c923365@linux.intel.com>
Date: Tue, 2 Jun 2020 11:45:48 +0200
From: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>
To: Christian König <christian.koenig@....com>,
Daniel Vetter <daniel.vetter@...ll.ch>,
DRI Development <dri-devel@...ts.freedesktop.org>
Cc: LKML <linux-kernel@...r.kernel.org>, linux-media@...r.kernel.org,
linaro-mm-sig@...ts.linaro.org, linux-rdma@...r.kernel.org,
amd-gfx@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org,
Chris Wilson <chris@...is-wilson.co.uk>,
Daniel Vetter <daniel.vetter@...el.com>
Subject: Re: [RFC 01/17] dma-fence: add might_sleep annotation to _wait()
Op 12-05-2020 om 11:08 schreef Christian König:
> Am 12.05.20 um 10:59 schrieb Daniel Vetter:
>> But only for non-zero timeout, to avoid false positives.
>>
>> One question here is whether the might_sleep should be unconditional,
>> or only for real timeouts. I'm not sure, so went with the more
>> defensive option. But in the interest of locking down the cross-driver
>> dma_fence rules we might want to be more aggressive.
>>
>> Cc: linux-media@...r.kernel.org
>> Cc: linaro-mm-sig@...ts.linaro.org
>> Cc: linux-rdma@...r.kernel.org
>> Cc: amd-gfx@...ts.freedesktop.org
>> Cc: intel-gfx@...ts.freedesktop.org
>> Cc: Chris Wilson <chris@...is-wilson.co.uk>
>> Cc: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>
>> Cc: Christian König <christian.koenig@....com>
>> Signed-off-by: Daniel Vetter <daniel.vetter@...el.com>
>> ---
>> drivers/dma-buf/dma-fence.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c
>> index 052a41e2451c..6802125349fb 100644
>> --- a/drivers/dma-buf/dma-fence.c
>> +++ b/drivers/dma-buf/dma-fence.c
>> @@ -208,6 +208,9 @@ dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout)
>> if (WARN_ON(timeout < 0))
>> return -EINVAL;
>> + if (timeout > 0)
>> + might_sleep();
>> +
>
> I would rather like to see might_sleep() called here all the time even with timeout==0.
>
> IIRC I removed the code in TTM abusing this in atomic context quite a while ago, but could be that some leaked in again or it is called in atomic context elsewhere as well.
Same, glad I'm not the only one who wants it. :)
~Maarten
Powered by blists - more mailing lists