[Intel-gfx] [PATCH 1/4] drm/i915: Replace global_seqno with a hangcheck heartbeat seqno
Chris Wilson
chris at chris-wilson.co.uk
Tue Feb 26 07:46:09 UTC 2019
Quoting Tvrtko Ursulin (2019-02-26 07:34:37)
>
> On 25/02/2019 18:40, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2019-02-25 17:59:40)
> >>
> >> On 25/02/2019 16:23, Chris Wilson wrote:
> >>> static inline struct i915_priolist *to_priolist(struct rb_node *rb)
> >>> {
> >>> return rb_entry(rb, struct i915_priolist, node);
> >>> @@ -2206,6 +2212,10 @@ static u32 *gen8_emit_fini_breadcrumb(struct i915_request *request, u32 *cs)
> >>> request->fence.seqno,
> >>> request->timeline->hwsp_offset);
> >>>
> >>> + cs = gen8_emit_ggtt_write(cs,
> >>> + intel_engine_next_hangcheck_seqno(request->engine),
> >>> + intel_hws_hangcheck_address(request->engine));
> >>> +
> >>> cs = gen8_emit_ggtt_write(cs,
> >>> request->global_seqno,
> >>> intel_hws_seqno_address(request->engine));
> >>> @@ -2230,6 +2240,11 @@ static u32 *gen8_emit_fini_breadcrumb_rcs(struct i915_request *request, u32 *cs)
> >>> PIPE_CONTROL_FLUSH_ENABLE |
> >>> PIPE_CONTROL_CS_STALL);
> >>>
> >>> + cs = gen8_emit_ggtt_write_rcs(cs,
> >>> + intel_engine_next_hangcheck_seqno(request->engine),
> >>> + intel_hws_hangcheck_address(request->engine),
> >>> + PIPE_CONTROL_CS_STALL);
> >>
> >> Are CS_STALL needed on two writes or only last one would be enough? Or
> >> even, should all flushes be moved to the last pipe control?
> >
> > The CS_STALL is overkill as there's no requirement for it to be before
> > the global_seqno, but the convenience and ease to reason over win.
[snip]
> Ok have at it.
>
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
I was just about to resend without the CS_STALL...
-Chris
More information about the Intel-gfx
mailing list