All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline
@ 2017-12-11 21:42 Chris Wilson
  2017-12-12  5:59 ` ✓ Fi.CI.BAT: success for " Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Chris Wilson @ 2017-12-11 21:42 UTC (permalink / raw)
  To: intel-gfx

In order to be sure that we catch the most recent request to be
executed, we need to finish on the global execution timeline. This
prevents a race where the request is being transferred between timelines
behind our back, jumping it ahead in the list onto the global execution
timeline that we have already processed causing us not to wait on that
request. Document this requirement with an assertion to protect
ourselves against future changes.

References: 73cb97010d4f ("drm/i915: Combine seqno + tracking into a global timeline struct")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9e957b213fdb..40db2258eb07 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3566,6 +3566,10 @@ int i915_gem_wait_for_idle(struct drm_i915_private *i915, unsigned int flags)
 
 		lockdep_assert_held(&i915->drm.struct_mutex);
 
+		/* Must finish by waiting on the global execution_timeline */
+		GEM_BUG_ON(list_last_entry(&i915->gt.timelines,
+					   typeof(*tl), link) !=
+			   &i915->gt.global_timeline);
 		list_for_each_entry(tl, &i915->gt.timelines, link) {
 			ret = wait_for_timeline(tl, flags);
 			if (ret)
-- 
2.15.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline
  2017-12-11 21:42 [PATCH] drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline Chris Wilson
@ 2017-12-12  5:59 ` Patchwork
  2017-12-12  7:37 ` ✗ Fi.CI.IGT: warning " Patchwork
  2017-12-12 14:03 ` [PATCH] " Chris Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2017-12-12  5:59 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline
URL   : https://patchwork.freedesktop.org/series/35194/
State : success

== Summary ==

Series 35194v1 drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline
https://patchwork.freedesktop.org/api/1.0/series/35194/revisions/1/mbox/

Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-a:
                pass       -> DMESG-WARN (fi-kbl-r) fdo#104172 +1
        Subgroup suspend-read-crc-pipe-b:
                pass       -> INCOMPLETE (fi-snb-2520m) fdo#103713

fdo#104172 https://bugs.freedesktop.org/show_bug.cgi?id=104172
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:435s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:442s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:388s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:513s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:278s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:508s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:510s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:484s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:469s
fi-elk-e7500     total:224  pass:163  dwarn:15  dfail:0   fail:0   skip:45 
fi-gdg-551       total:288  pass:179  dwarn:1   dfail:0   fail:0   skip:108 time:269s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:539s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:357s
fi-hsw-4770r     total:288  pass:224  dwarn:0   dfail:0   fail:0   skip:64  time:262s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:395s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:480s
fi-ivb-3770      total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:446s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:488s
fi-kbl-7560u     total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  time:521s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:472s
fi-kbl-r         total:288  pass:260  dwarn:1   dfail:0   fail:0   skip:27  time:532s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:586s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:446s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:545s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:565s
fi-skl-6700k     total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:513s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:493s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:451s
fi-snb-2520m     total:245  pass:211  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:410s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:601s
fi-glk-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:488s
fi-cnl-y failed to connect after reboot

39419b521a0f0e947977cd98a0662fb4316a6509 drm-tip: 2017y-12m-11d-17h-25m-05s UTC integration manifest
5e49a7b9cc5b drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7471/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* ✗ Fi.CI.IGT: warning for drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline
  2017-12-11 21:42 [PATCH] drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline Chris Wilson
  2017-12-12  5:59 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-12-12  7:37 ` Patchwork
  2017-12-12 14:03 ` [PATCH] " Chris Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2017-12-12  7:37 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline
URL   : https://patchwork.freedesktop.org/series/35194/
State : warning

== Summary ==

Test drv_suspend:
        Subgroup sysfs-reader-hibernate:
                fail       -> SKIP       (shard-snb) fdo#103375 +2
Test kms_flip:
        Subgroup wf_vblank-vs-modeset-interruptible:
                dmesg-warn -> PASS       (shard-hsw) fdo#102614
Test gem_eio:
        Subgroup in-flight-suspend:
                pass       -> SKIP       (shard-snb)
Test kms_frontbuffer_tracking:
        Subgroup fbc-1p-offscren-pri-shrfb-draw-blt:
                fail       -> PASS       (shard-snb) fdo#101623 +1
Test kms_plane:
        Subgroup plane-panning-bottom-right-suspend-pipe-a-planes:
                pass       -> INCOMPLETE (shard-hsw) fdo#103540
Test perf_pmu:
        Subgroup render-node-busy-vcs0:
                incomplete -> PASS       (shard-hsw)

fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540

shard-hsw        total:2577 pass:1473 dwarn:1   dfail:1   fail:9   skip:1091 time:9133s
shard-snb        total:2692 pass:1308 dwarn:1   dfail:1   fail:10  skip:1372 time:8073s
Blacklisted hosts:
shard-apl        total:2670 pass:1664 dwarn:1   dfail:0   fail:23  skip:981 time:13500s
shard-kbl        total:2692 pass:1807 dwarn:1   dfail:0   fail:24  skip:860 time:10996s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7471/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline
  2017-12-11 21:42 [PATCH] drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline Chris Wilson
  2017-12-12  5:59 ` ✓ Fi.CI.BAT: success for " Patchwork
  2017-12-12  7:37 ` ✗ Fi.CI.IGT: warning " Patchwork
@ 2017-12-12 14:03 ` Chris Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: Chris Wilson @ 2017-12-12 14:03 UTC (permalink / raw)
  To: intel-gfx

Quoting Chris Wilson (2017-12-11 21:42:22)
> In order to be sure that we catch the most recent request to be
> executed, we need to finish on the global execution timeline. This
> prevents a race where the request is being transferred between timelines
> behind our back, jumping it ahead in the list onto the global execution
> timeline that we have already processed causing us not to wait on that
> request. Document this requirement with an assertion to protect
> ourselves against future changes.
> 
> References: 73cb97010d4f ("drm/i915: Combine seqno + tracking into a global timeline struct")
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 9e957b213fdb..40db2258eb07 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -3566,6 +3566,10 @@ int i915_gem_wait_for_idle(struct drm_i915_private *i915, unsigned int flags)
>  
>                 lockdep_assert_held(&i915->drm.struct_mutex);
>  
> +               /* Must finish by waiting on the global execution_timeline */
> +               GEM_BUG_ON(list_last_entry(&i915->gt.timelines,
> +                                          typeof(*tl), link) !=
> +                          &i915->gt.global_timeline);

Scratch all that. It's just nice to have, rather than a hard
requirement. We aren't looking at the timeline->requests list, but
timeline->last_request which will not disappear behind our backs.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-12-12 14:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-11 21:42 [PATCH] drm/i915: Finish i915_gem_wait_for_idle() on the global execution timeline Chris Wilson
2017-12-12  5:59 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-12-12  7:37 ` ✗ Fi.CI.IGT: warning " Patchwork
2017-12-12 14:03 ` [PATCH] " Chris Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.