drm/i915/execlists: Reduce completed event mask to COMPLETE | PREEMPTED
Since we get a COMPLETE event when the context switch occurs on RING_HEAD == RING_TAIL and a PREEMPTED event when a switch occurs before that point, COMPLETE | PREEMPTED should cover all possible context switch completion events. We can move the ELEMENT_SWITCH info message from the COMPLETED_MASK into an assertion for when we are performing a switch to port[1]. Suggested-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Michal Winiarski <michal.winiarski@intel.com> Cc: Michel Thierry <michel.thierry@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20171120123458.23242-2-chris@chris-wilson.co.uk Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>hifive-unleashed-5.1
parent
e40dd22624
commit
d8747afb11
|
@ -154,9 +154,7 @@
|
|||
#define GEN8_CTX_STATUS_LITE_RESTORE (1 << 15)
|
||||
|
||||
#define GEN8_CTX_STATUS_COMPLETED_MASK \
|
||||
(GEN8_CTX_STATUS_COMPLETE | \
|
||||
GEN8_CTX_STATUS_PREEMPTED | \
|
||||
GEN8_CTX_STATUS_ELEMENT_SWITCH)
|
||||
(GEN8_CTX_STATUS_COMPLETE | GEN8_CTX_STATUS_PREEMPTED)
|
||||
|
||||
#define CTX_LRI_HEADER_0 0x01
|
||||
#define CTX_CONTEXT_CONTROL 0x02
|
||||
|
@ -907,6 +905,8 @@ static void execlists_submission_tasklet(unsigned long data)
|
|||
GEM_BUG_ON(count == 0);
|
||||
if (--count == 0) {
|
||||
GEM_BUG_ON(status & GEN8_CTX_STATUS_PREEMPTED);
|
||||
GEM_BUG_ON(port_isset(&port[1]) &&
|
||||
!(status & GEN8_CTX_STATUS_ELEMENT_SWITCH));
|
||||
GEM_BUG_ON(!i915_gem_request_completed(rq));
|
||||
execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
|
||||
|
||||
|
|
Loading…
Reference in New Issue