Message ID | 20180220104742.565-1-tvrtko.ursulin@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Quoting Tvrtko Ursulin (2018-02-20 10:47:42) > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > Commit fe49789fab97 ("drm/i915: Deconstruct execute fence") re-arranged > the code and moved the i915_gem_request_execute tracepoint to before the > global seqno is assigned to the request. > > We need to move the tracepoint a bit later so this information is once > again available. Ok, iirc my thinking was just to have the tracing early to show the entry to i915_request_submit. If you are happy with having it at the end with the details filled in, so am I :) > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Fixes: fe49789fab97 ("drm/i915: Deconstruct execute fence") > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> > Cc: intel-gfx@lists.freedesktop.org Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
On 20/02/2018 10:57, Chris Wilson wrote: > Quoting Tvrtko Ursulin (2018-02-20 10:47:42) >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> >> Commit fe49789fab97 ("drm/i915: Deconstruct execute fence") re-arranged >> the code and moved the i915_gem_request_execute tracepoint to before the >> global seqno is assigned to the request. >> >> We need to move the tracepoint a bit later so this information is once >> again available. > > Ok, iirc my thinking was just to have the tracing early to show the > entry to i915_request_submit. If you are happy with having it at the > end with the details filled in, so am I :) We have trace_i915_gem_request_submit in the fence->submit_notify so I think it is OK. Would it be better to move it to just after req->global_seqno is set, so before enable_signalling (it would be under the lock)? I am just thinking that the spirit of the tracepoint was that global seqno should be known. Regards, Tvrtko >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Fixes: fe49789fab97 ("drm/i915: Deconstruct execute fence") >> Cc: Chris Wilson <chris@chris-wilson.co.uk> >> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> >> Cc: Jani Nikula <jani.nikula@linux.intel.com> >> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> >> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> >> Cc: intel-gfx@lists.freedesktop.org > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> > -Chris > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx >
Quoting Tvrtko Ursulin (2018-02-20 11:14:38) > > On 20/02/2018 10:57, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2018-02-20 10:47:42) > >> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > >> > >> Commit fe49789fab97 ("drm/i915: Deconstruct execute fence") re-arranged > >> the code and moved the i915_gem_request_execute tracepoint to before the > >> global seqno is assigned to the request. > >> > >> We need to move the tracepoint a bit later so this information is once > >> again available. > > > > Ok, iirc my thinking was just to have the tracing early to show the > > entry to i915_request_submit. If you are happy with having it at the > > end with the details filled in, so am I :) > > We have trace_i915_gem_request_submit in the fence->submit_notify so I > think it is OK. > > Would it be better to move it to just after req->global_seqno is set, so > before enable_signalling (it would be under the lock)? Personally, either the beginning or the end of this function make the most sense to me (in the grand scheme of request flow). Or at least it keeps the tracepoint out of the way :) There's some merit I feel to avoid having it appear coupled to the assignment of global_seqno. -Chris
On 20/02/2018 11:18, Patchwork wrote: > == Series Details == > > Series: drm/i915: Make global seqno known in i915_gem_request_execute tracepoint > URL : https://patchwork.freedesktop.org/series/38578/ > State : success > > == Summary == > > Series 38578v1 drm/i915: Make global seqno known in i915_gem_request_execute tracepoint > https://patchwork.freedesktop.org/api/1.0/series/38578/revisions/1/mbox/ > > Test debugfs_test: > Subgroup read_all_entries: > incomplete -> PASS (fi-snb-2520m) fdo#103713 +1 > Test kms_chamelium: > Subgroup dp-crc-fast: > dmesg-fail -> PASS (fi-kbl-7500u) fdo#103841 > Test prime_vgem: > Subgroup basic-fence-flip: > pass -> FAIL (fi-ilk-650) fdo#104008 > > fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713 > fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841 > fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 > > fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:413s > fi-bdw-gvtdvm total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:426s > fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:370s > fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:483s > fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:282s > fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:482s > fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:482s > fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:464s > fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:454s > fi-cfl-s2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:567s > fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:420s > fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:283s > fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:507s > fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:386s > fi-ilk-650 total:288 pass:227 dwarn:0 dfail:0 fail:1 skip:60 time:412s > fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:456s > fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:412s > fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:450s > fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:489s > fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:453s > fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:494s > fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:589s > fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:427s > fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:502s > fi-skl-6700hq total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:516s > fi-skl-6700k2 total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:486s > fi-skl-6770hq total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:486s > fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:407s > fi-skl-gvtdvm total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:426s > 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:393s > > 67f148034b8b6afdb0811e88245b67ad7730bb1a drm-tip: 2018y-02m-20d-09h-12m-29s UTC integration manifest > d5724507a190 drm/i915: Make global seqno known in i915_gem_request_execute tracepoint Pushed, thanks for the review! Regards, Tvrtko
diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c index 8bc7c50b8418..0deca06fdf0e 100644 --- a/drivers/gpu/drm/i915/i915_gem_request.c +++ b/drivers/gpu/drm/i915/i915_gem_request.c @@ -490,8 +490,6 @@ void __i915_gem_request_submit(struct drm_i915_gem_request *request) GEM_BUG_ON(!irqs_disabled()); lockdep_assert_held(&engine->timeline->lock); - trace_i915_gem_request_execute(request); - /* Transfer from per-context onto the global per-engine timeline */ timeline = engine->timeline; GEM_BUG_ON(timeline == request->timeline); @@ -515,6 +513,8 @@ void __i915_gem_request_submit(struct drm_i915_gem_request *request) list_move_tail(&request->link, &timeline->requests); spin_unlock(&request->timeline->lock); + trace_i915_gem_request_execute(request); + wake_up_all(&request->execute); }