Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Move the BUG_ON around slightly and add some explanations for each to > try and capture the expected state more carefully. We want to compare > the expected active state of our bookkeeping as compared to the tracked > HW state. > > References: https://bugs.freedesktop.org/show_bug.cgi?id=111937 > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/intel_lrc.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c > index 7ea58335f04c..7c0d3c343520 100644 > --- a/drivers/gpu/drm/i915/gt/intel_lrc.c > +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c > @@ -2777,8 +2777,10 @@ static void __execlists_reset(struct intel_engine_cs *engine, bool stalled) > if (!rq) > goto unwind; > > + /* We still have requests in-flight; the engine should be active */ > + GEM_BUG_ON(!intel_engine_pm_is_awake(engine)); > + > ce = rq->hw_context; > - GEM_BUG_ON(i915_active_is_idle(&ce->active)); > GEM_BUG_ON(!i915_vma_is_pinned(ce->state)); > > /* Proclaim we have exclusive access to the context image! */ > @@ -2786,10 +2788,13 @@ static void __execlists_reset(struct intel_engine_cs *engine, bool stalled) > > rq = active_request(rq); > if (!rq) { > + /* Idle context; tidy up the ring so we can restart afresh */ > ce->ring->head = ce->ring->tail; > goto out_replay; > } > > + /* Context has requests still in-flight; it should not be idle! */ > + GEM_BUG_ON(i915_active_is_idle(&ce->active)); > ce->ring->head = intel_ring_wrap(ce->ring, rq->head); > > /* > -- > 2.23.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx