1. 03 Oct, 2022 12 commits
  2. 30 Sep, 2022 3 commits
  3. 29 Sep, 2022 7 commits
  4. 28 Sep, 2022 5 commits
  5. 27 Sep, 2022 12 commits
  6. 26 Sep, 2022 1 commit
    • Chris Wilson's avatar
      drm/i915/gt: Restrict forced preemption to the active context · 107ba1a2
      Chris Wilson authored
      When we submit a new pair of contexts to ELSP for execution, we start a
      timer by which point we expect the HW to have switched execution to the
      pending contexts. If the promotion to the new pair of contexts has not
      occurred, we declare the executing context to have hung and force the
      preemption to take place by resetting the engine and resubmitting the
      new contexts.
      
      This can lead to an unfair situation where almost all of the preemption
      timeout is consumed by the first context which just switches into the
      second context immediately prior to the timer firing and triggering the
      preemption reset (assuming that the timer interrupts before we process
      the CS events for the context switch). The second context hasn't yet had
      a chance to yield to the incoming ELSP (and send the ACk for the
      promotion) and so ends up being blamed for the reset.
      
      If we see that a context switch has occurred since setting the
      preemption timeout, but have not yet received the ACK for the ELSP
      promotion, rearm the preemption timer and check again. This is
      especially significant if the first context was not schedulable and so
      we used the shortest timer possible, greatly increasing the chance of
      accidentally blaming the second innocent context.
      
      Fixes: 3a7a92ab ("drm/i915/execlists: Force preemption")
      Fixes: d12acee8 ("drm/i915/execlists: Cancel banned contexts on schedule-out")
      Reported-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Andi Shyti <andi.shyti@linux.intel.com>
      Reviewed-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
      Tested-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
      Cc: <stable@vger.kernel.org> # v5.5+
      Signed-off-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220921135258.1714873-1-andrzej.hajda@intel.com
      107ba1a2