mirror of https://github.com/torvalds/linux.git
drm/i915: Assert that we always complete a submission to guc/execlists
The continual resubmission model for execlists (and emulated over guc) requires that we keep feeding requests into the HW in order to generate more CS interrupts to drain the rest of the queue. Add a couple of asserts to ensure that we don't skip a cycle and come to a grinding halt. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180215162553.23348-1-chris@chris-wilson.co.uk
This commit is contained in:
parent
c0a51fd07b
commit
339ccd35b4
|
|
@ -747,6 +747,12 @@ static void guc_dequeue(struct intel_engine_cs *engine)
|
|||
execlists_set_active(execlists, EXECLISTS_ACTIVE_USER);
|
||||
guc_submit(engine);
|
||||
}
|
||||
|
||||
/* We must always keep the beast fed if we have work piled up */
|
||||
GEM_BUG_ON(port_isset(execlists->port) &&
|
||||
!execlists_is_active(execlists, EXECLISTS_ACTIVE_USER));
|
||||
GEM_BUG_ON(execlists->first && !port_isset(execlists->port));
|
||||
|
||||
unlock:
|
||||
spin_unlock_irq(&engine->timeline->lock);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -642,6 +642,12 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
|
|||
execlists->first = rb;
|
||||
if (submit)
|
||||
port_assign(port, last);
|
||||
|
||||
/* We must always keep the beast fed if we have work piled up */
|
||||
GEM_BUG_ON(port_isset(execlists->port) &&
|
||||
!execlists_is_active(execlists, EXECLISTS_ACTIVE_USER));
|
||||
GEM_BUG_ON(execlists->first && !port_isset(execlists->port));
|
||||
|
||||
unlock:
|
||||
spin_unlock_irq(&engine->timeline->lock);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue