diff mbox

[1/2] drm/i915: Use ktime on wait_for

Message ID 20180420134550.17590-1-mika.kuoppala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mika Kuoppala April 20, 2018, 1:45 p.m. UTC
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.

v2: added bugzilla entry (Imre), added stable (Chris)

Reported-by: Imre Deak <imre.deak@intel.com>
References: https://lkml.org/lkml/2018/4/18/798 [1]
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105771
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_drv.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Martin Peres April 24, 2018, 12:22 p.m. UTC | #1
On 20/04/18 19:55, Patchwork wrote:
> == Series Details ==
> 
> Series: series starting with [1/2] drm/i915: Use ktime on wait_for
> URL   : https://patchwork.freedesktop.org/series/42035/
> State : failure
> 
> == Summary ==
> 
> = CI Bug Log - changes from CI_DRM_4072_full -> Patchwork_8764_full =
> 
> == Summary - FAILURE ==
> 
>   Serious unknown changes coming with Patchwork_8764_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_8764_full, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://patchwork.freedesktop.org/api/1.0/series/42035/revisions/1/mbox/
> 
> == Possible new issues ==
> 
>   Here are the unknown changes that may have been introduced in Patchwork_8764_full:
> 
>   === IGT changes ===
> 
>     ==== Possible regressions ====
> 
>     igt@gem_exec_suspend@basic-s3-devices:
>       shard-hsw:          PASS -> DMESG-WARN

Looks like https://bugs.freedesktop.org/show_bug.cgi?id=106086

> 
>     
>     ==== Warnings ====
> 
>     igt@gem_mocs_settings@mocs-rc6-render:
>       shard-kbl:          SKIP -> PASS
> 
>     igt@kms_vblank@pipe-b-wait-forked-busy-hang:
>       shard-glk:          SKIP -> PASS +85
> 
>     igt@pm_rpm@modeset-non-lpsp:
>       shard-glk:          PASS -> SKIP +58
> 
>     
> == Known issues ==
> 
>   Here are the changes found in Patchwork_8764_full that come from known issues:
> 
>   === IGT changes ===
> 
>     ==== Issues hit ====
> 
>     igt@gem_ppgtt@blt-vs-render-ctxn:
>       shard-kbl:          PASS -> INCOMPLETE (fdo#103665, fdo#106023)
> 
>     igt@kms_flip@flip-vs-wf_vblank-interruptible:
>       shard-glk:          PASS -> FAIL (fdo#100368) +1
> 
>     igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt:
>       shard-kbl:          PASS -> DMESG-WARN (fdo#105602, fdo#103558) +38
> 
>     
>     ==== Possible fixes ====
> 
>     igt@kms_flip@dpms-vs-vblank-race-interruptible:
>       shard-glk:          FAIL (fdo#103060) -> SKIP
> 
>     igt@kms_flip@plain-flip-fb-recreate:
>       shard-hsw:          FAIL (fdo#100368) -> PASS
> 
>     igt@kms_flip@plain-flip-ts-check-interruptible:
>       shard-glk:          FAIL (fdo#100368) -> PASS +1
> 
>     igt@kms_setmode@basic:
>       shard-glk:          FAIL (fdo#99912) -> PASS
> 
>     igt@perf@blocking:
>       shard-hsw:          FAIL (fdo#102252) -> PASS
> 
>     
>   fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
>   fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
>   fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
>   fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
>   fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
>   fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
>   fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
>   fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
> 
> 
> == Participating hosts (6 -> 5) ==
> 
>   Missing    (1): shard-glkb 
> 
> 
> == Build changes ==
> 
>     * Linux: CI_DRM_4072 -> Patchwork_8764
> 
>   CI_DRM_4072: b35e59e5c6a9cae11d5183d2bf9c5c99ceedbc7c @ git://anongit.freedesktop.org/gfx-ci/linux
>   IGT_4442: 8168bb65d5e64d4df4e5d847d448bab2d2825d73 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
>   Patchwork_8764: ae064ac61a135c5543fec9fe7a171f68bfc1a28e @ git://anongit.freedesktop.org/gfx-ci/linux
>   piglit_4442: e60d247eb359f044caf0c09904da14e39d7adca1 @ git://anongit.freedesktop.org/piglit
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8764/shards.html
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
Mika Kuoppala April 24, 2018, 12:45 p.m. UTC | #2
Martin Peres <martin.peres@linux.intel.com> writes:

> On 20/04/18 19:55, Patchwork wrote:
>> == Series Details ==
>> 
>> Series: series starting with [1/2] drm/i915: Use ktime on wait_for
>> URL   : https://patchwork.freedesktop.org/series/42035/
>> State : failure
>> 
>> == Summary ==
>> 
>> = CI Bug Log - changes from CI_DRM_4072_full -> Patchwork_8764_full =
>> 
>> == Summary - FAILURE ==
>> 
>>   Serious unknown changes coming with Patchwork_8764_full absolutely need to be
>>   verified manually.
>>   
>>   If you think the reported changes have nothing to do with the changes
>>   introduced in Patchwork_8764_full, please notify your bug team to allow them
>>   to document this new failure mode, which will reduce false positives in CI.
>> 
>>   External URL: https://patchwork.freedesktop.org/api/1.0/series/42035/revisions/1/mbox/
>> 
>> == Possible new issues ==
>> 
>>   Here are the unknown changes that may have been introduced in Patchwork_8764_full:
>> 
>>   === IGT changes ===
>> 
>>     ==== Possible regressions ====
>> 
>>     igt@gem_exec_suspend@basic-s3-devices:
>>       shard-hsw:          PASS -> DMESG-WARN
>
> Looks like https://bugs.freedesktop.org/show_bug.cgi?id=106086

Yes. As this patch has potential to affect timings across the i915,
I wanted a second opinion. Thanks Martin!
-Mika

>
>> 
>>     
>>     ==== Warnings ====
>> 
>>     igt@gem_mocs_settings@mocs-rc6-render:
>>       shard-kbl:          SKIP -> PASS
>> 
>>     igt@kms_vblank@pipe-b-wait-forked-busy-hang:
>>       shard-glk:          SKIP -> PASS +85
>> 
>>     igt@pm_rpm@modeset-non-lpsp:
>>       shard-glk:          PASS -> SKIP +58
>> 
>>     
>> == Known issues ==
>> 
>>   Here are the changes found in Patchwork_8764_full that come from known issues:
>> 
>>   === IGT changes ===
>> 
>>     ==== Issues hit ====
>> 
>>     igt@gem_ppgtt@blt-vs-render-ctxn:
>>       shard-kbl:          PASS -> INCOMPLETE (fdo#103665, fdo#106023)
>> 
>>     igt@kms_flip@flip-vs-wf_vblank-interruptible:
>>       shard-glk:          PASS -> FAIL (fdo#100368) +1
>> 
>>     igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt:
>>       shard-kbl:          PASS -> DMESG-WARN (fdo#105602, fdo#103558) +38
>> 
>>     
>>     ==== Possible fixes ====
>> 
>>     igt@kms_flip@dpms-vs-vblank-race-interruptible:
>>       shard-glk:          FAIL (fdo#103060) -> SKIP
>> 
>>     igt@kms_flip@plain-flip-fb-recreate:
>>       shard-hsw:          FAIL (fdo#100368) -> PASS
>> 
>>     igt@kms_flip@plain-flip-ts-check-interruptible:
>>       shard-glk:          FAIL (fdo#100368) -> PASS +1
>> 
>>     igt@kms_setmode@basic:
>>       shard-glk:          FAIL (fdo#99912) -> PASS
>> 
>>     igt@perf@blocking:
>>       shard-hsw:          FAIL (fdo#102252) -> PASS
>> 
>>     
>>   fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
>>   fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
>>   fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
>>   fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
>>   fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
>>   fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
>>   fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
>>   fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
>> 
>> 
>> == Participating hosts (6 -> 5) ==
>> 
>>   Missing    (1): shard-glkb 
>> 
>> 
>> == Build changes ==
>> 
>>     * Linux: CI_DRM_4072 -> Patchwork_8764
>> 
>>   CI_DRM_4072: b35e59e5c6a9cae11d5183d2bf9c5c99ceedbc7c @ git://anongit.freedesktop.org/gfx-ci/linux
>>   IGT_4442: 8168bb65d5e64d4df4e5d847d448bab2d2825d73 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
>>   Patchwork_8764: ae064ac61a135c5543fec9fe7a171f68bfc1a28e @ git://anongit.freedesktop.org/gfx-ci/linux
>>   piglit_4442: e60d247eb359f044caf0c09904da14e39d7adca1 @ git://anongit.freedesktop.org/piglit
>> 
>> == Logs ==
>> 
>> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8764/shards.html
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>>
diff mbox

Patch

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)); \
 	long wait__ = (Wmin); /* recommended min for usleep is 10 us */	\
 	int ret__;							\
 	might_sleep();							\
 	for (;;) {							\
-		bool expired__ = time_after(jiffies, timeout__);	\
+		const bool expired__ = ktime_after(ktime_get_raw(), end__); \
 		OP;							\
 		if (COND) {						\
 			ret__ = 0;					\