Message ID | 20190710064454.682-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/14] drm/i915/execlists: Record preemption for selftests | expand |
Chris Wilson <chris@chris-wilson.co.uk> writes: > Put back the preemption counters lost in commit 22b7a426bbe1 > ("drm/i915/execlists: Preempt-to-busy") so that our selftests that > assert no preemption took place continue to function. > > v2: But a timeslice is only a "soft" preemption! > > Fixes: 22b7a426bbe1 ("drm/i915/execlists: Preempt-to-busy") > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/i915/gt/intel_lrc.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c > index 19ce8eb5e5c9..270ef417dd1a 100644 > --- a/drivers/gpu/drm/i915/gt/intel_lrc.c > +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c > @@ -921,6 +921,11 @@ enable_timeslice(struct intel_engine_cs *engine) > return last && need_timeslice(engine, last); > } > > +static void record_preemption(struct intel_engine_execlists *execlists) > +{ > + (void)I915_SELFTEST_ONLY(execlists->preempt_hang.count++); > +} > + > static void execlists_dequeue(struct intel_engine_cs *engine) > { > struct intel_engine_execlists * const execlists = &engine->execlists; > @@ -989,6 +994,8 @@ static void execlists_dequeue(struct intel_engine_cs *engine) > last->fence.seqno, > last->sched.attr.priority, > execlists->queue_priority_hint); > + record_preemption(execlists); > + > /* > * Don't let the RING_HEAD advance past the breadcrumb > * as we unwind (and until we resubmit) so that we do > -- > 2.22.0
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c index 19ce8eb5e5c9..270ef417dd1a 100644 --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@ -921,6 +921,11 @@ enable_timeslice(struct intel_engine_cs *engine) return last && need_timeslice(engine, last); } +static void record_preemption(struct intel_engine_execlists *execlists) +{ + (void)I915_SELFTEST_ONLY(execlists->preempt_hang.count++); +} + static void execlists_dequeue(struct intel_engine_cs *engine) { struct intel_engine_execlists * const execlists = &engine->execlists; @@ -989,6 +994,8 @@ static void execlists_dequeue(struct intel_engine_cs *engine) last->fence.seqno, last->sched.attr.priority, execlists->queue_priority_hint); + record_preemption(execlists); + /* * Don't let the RING_HEAD advance past the breadcrumb * as we unwind (and until we resubmit) so that we do
Put back the preemption counters lost in commit 22b7a426bbe1 ("drm/i915/execlists: Preempt-to-busy") so that our selftests that assert no preemption took place continue to function. v2: But a timeslice is only a "soft" preemption! Fixes: 22b7a426bbe1 ("drm/i915/execlists: Preempt-to-busy") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> --- drivers/gpu/drm/i915/gt/intel_lrc.c | 7 +++++++ 1 file changed, 7 insertions(+)