1. 28 Sep, 2023 1 commit
  2. 27 Sep, 2023 1 commit
    • Tvrtko Ursulin's avatar
      drm/i915: Do not disable preemption for resets · 1e975e59
      Tvrtko Ursulin authored
      Commit ade8a0f5 ("drm/i915: Make all GPU resets atomic") added a
      preempt disable section over the hardware reset callback to prepare the
      driver for being able to reset from atomic contexts.
      
      In retrospect I can see that the work item at a time was about removing
      the struct mutex from the reset path. Code base also briefly entertained
      the idea of doing the reset under stop_machine in order to serialize
      userspace mmap and temporary glitch in the fence registers (see
      eb8d0f5a ("drm/i915: Remove GPU reset dependence on struct_mutex"),
      but that never materialized and was soon removed in 2caffbf1
      ("drm/i915: Revoke mmaps and prevent access to fence registers across
      reset") and replaced with a SRCU based solution.
      
      As such, as far as I can see, today we still have a requirement that
      resets must not sleep (invoked from submission tasklets), but no need to
      support invoking them from a truly atomic context.
      
      Given that the preemption section is problematic on RT kernels, since the
      uncore lock becomes a sleeping lock and so is invalid in such section,
      lets try and remove it. Potential downside is that our short waits on GPU
      to complete the reset may get extended if CPU scheduling interferes, but
      in practice that probably isn't a deal breaker.
      
      In terms of mechanics, since the preemption disabled block is being
      removed we just need to replace a few of the wait_for_atomic macros into
      busy looping versions which will work (and not complain) when called from
      non-atomic sections.
      
      v2:
       * Fix timeouts which are now in us. (Andi)
       * Update one comment as a drive by. (Andi)
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Chris Wilson <chris.p.wilson@intel.com>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Andi Shyti <andi.shyti@linux.intel.com>
      Reviewed-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230926100855.61722-1-tvrtko.ursulin@linux.intel.com
      1e975e59
  3. 26 Sep, 2023 2 commits
  4. 25 Sep, 2023 3 commits
  5. 21 Sep, 2023 3 commits
  6. 20 Sep, 2023 1 commit
  7. 19 Sep, 2023 3 commits
  8. 15 Sep, 2023 3 commits
  9. 14 Sep, 2023 1 commit
  10. 13 Sep, 2023 1 commit
  11. 08 Sep, 2023 1 commit
  12. 07 Sep, 2023 2 commits
  13. 31 Aug, 2023 1 commit
  14. 30 Aug, 2023 1 commit
  15. 29 Aug, 2023 1 commit
  16. 28 Aug, 2023 1 commit
  17. 23 Aug, 2023 1 commit
  18. 22 Aug, 2023 1 commit
    • John Harrison's avatar
      drm/i915/guc: Force a reset on internal GuC error · b2edc414
      John Harrison authored
      If GuC hits an internal error (and survives long enough to report it
      to the KMD), it is basically toast and will stop until a GT reset and
      subsequent GuC reload is performed. Previously, the KMD just printed
      an error message and then waited for the heartbeat to eventually kick
      in and trigger a reset (assuming the heartbeat had not been disabled).
      Instead, force the reset immediately to guarantee that it happens and
      to eliminate the very long heartbeat delay. The captured error state
      is also more likely to be useful if captured at the time of the error
      rather than many seconds later.
      
      Note that it is not possible to trigger a reset from with the G2H
      handler itself. The reset prepare process involves flushing
      outstanding G2H contents. So a deadlock could result. Instead, the G2H
      handler queues a worker thread to do the reset asynchronously.
      
      v2: Flush the worker on suspend and shutdown. Add rate limiting to
      prevent spam from a totally dead system (review feedback from Daniele).
      Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
      Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230816003957.3572654-1-John.C.Harrison@Intel.com
      b2edc414
  19. 21 Aug, 2023 7 commits
  20. 17 Aug, 2023 3 commits
  21. 16 Aug, 2023 1 commit
  22. 15 Aug, 2023 1 commit