1. 08 Apr, 2021 2 commits
  2. 07 Apr, 2021 1 commit
  3. 01 Apr, 2021 4 commits
  4. 31 Mar, 2021 11 commits
  5. 29 Mar, 2021 8 commits
  6. 26 Mar, 2021 13 commits
  7. 25 Mar, 2021 1 commit
    • Tvrtko Ursulin's avatar
      drm/i915: Request watchdog infrastructure · 9b4d0598
      Tvrtko Ursulin authored
      Prepares the plumbing for setting request/fence expiration time. All code
      is put in place but is never activated due yet missing ability to actually
      configure the timer.
      
      Outline of the basic operation:
      
      A timer is started when request is ready for execution. If the request
      completes (retires) before the timer fires, timer is cancelled and nothing
      further happens.
      
      If the timer fires request is added to a lockless list and worker queued.
      Purpose of this is twofold: a) It allows request cancellation from a more
      friendly context and b) coalesces multiple expirations into a single event
      of consuming the list.
      
      Worker locklessly consumes the list of expired requests and cancels them
      all using previous added i915_request_cancel().
      
      Associated timeout value is stored in rq->context.watchdog.timeout_us.
      
      v2:
       * Log expiration.
      
      v3:
       * Include more information about user timeline in the log message.
      
      v4:
       * Remove obsolete comment and fix formatting. (Matt)
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210324121335.2307063-6-tvrtko.ursulin@linux.intel.com
      9b4d0598