[Intel-gfx] [PATCH] drm/i915: Use ktime on wait_for

Sagar Arun Kamble sagar.a.kamble at intel.com
Fri Apr 20 11:55:28 UTC 2018



On 4/20/2018 4:09 PM, Chris Wilson wrote:
> Quoting Sagar Arun Kamble (2018-04-20 11:23:50)
>>
>> On 4/20/2018 3:24 PM, Mika Kuoppala wrote:
>>> We use jiffies to determine when wait expires. However
>>> Imre did find out that jiffies can and will do a >1
>>> increments on certain situations [1]. When this happens
>>> in a wait_for loop, we return timeout errorneously
>>> much earlier than what the real wallclock would say.
>>>
>>> We can't afford our waits to timeout prematurely.
>>> Discard jiffies and change to ktime to detect timeouts.
>>>
>>> Reported-by: Imre Deak <imre.deak at intel.com>
>>> References: https://lkml.org/lkml/2018/4/18/798 [1]
>>> Cc: Imre Deak <imre.deak at intel.com>
>>> Cc: Chris Wilson <chris at chris-wilson.co.uk>
>>> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>> Signed-off-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>
>>> ---
>>>    drivers/gpu/drm/i915/intel_drv.h | 4 ++--
>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
>>> index 8b20824e806e..ac7565220aa3 100644
>>> --- a/drivers/gpu/drm/i915/intel_drv.h
>>> +++ b/drivers/gpu/drm/i915/intel_drv.h
>>> @@ -49,12 +49,12 @@
>>>     * check the condition before the timeout.
>>>     */
>>>    #define __wait_for(OP, COND, US, Wmin, Wmax) ({ \
>>> -     unsigned long timeout__ = jiffies + usecs_to_jiffies(US) + 1;   \
>>> +     const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
>> Is ktime_get_raw() monotonic? Thomas suggested ktime_get()
> It proclaims to be monotonic, without the clock drift calibration. For
> the milliseconds we should be sleeping at most, I hope that is
> immaterial.
Yes. I remembered from Imre's comment[1] that raw clock can jump and 
will not be calibrated. If jumps are are not > jiffies we should be good 
get_raw then.

[1] 
https://lists.freedesktop.org/archives/dri-devel/2012-October/028878.html
> -Chris

-- 
Thanks,
Sagar



More information about the Intel-gfx mailing list