1. 18 1月, 2019 2 次提交
  2. 31 12月, 2018 1 次提交
  3. 03 12月, 2018 1 次提交
  4. 07 8月, 2018 1 次提交
  5. 29 6月, 2018 1 次提交
  6. 19 5月, 2018 1 次提交
  7. 26 4月, 2018 1 次提交
  8. 25 4月, 2018 1 次提交
  9. 13 3月, 2018 1 次提交
  10. 07 3月, 2018 2 次提交
  11. 06 3月, 2018 2 次提交
  12. 05 3月, 2018 1 次提交
  13. 22 2月, 2018 1 次提交
  14. 14 2月, 2018 1 次提交
  15. 07 2月, 2018 1 次提交
  16. 05 2月, 2018 1 次提交
  17. 01 2月, 2018 1 次提交
    • C
      drm/i915: Always run hangcheck while the GPU is busy · b26a32a8
      Chris Wilson 提交于
      Previously, we relied on only running the hangcheck while somebody was
      waiting on the GPU, in order to minimise the amount of time hangcheck
      had to run. (If nobody was watching the GPU, nobody would notice if the
      GPU wasn't responding -- eventually somebody would care and so kick
      hangcheck into action.) However, this falls apart from around commit
      4680816b ("drm/i915: Wait first for submission, before waiting for
      request completion"), as not all waiters declare themselves to hangcheck
      and so we could switch off hangcheck and miss GPU hangs even when
      waiting under the struct_mutex.
      
      If we enable hangcheck from the first request submission, and let it run
      until the GPU is idle again, we forgo all the complexity involved with
      only enabling around waiters. We just have to remember to be careful that
      we do not declare a GPU hang when idly waiting for the next request to
      be come ready, as we will run hangcheck continuously even when the
      engines are stalled waiting for external events. This should be true
      already as we should only be tracking requests submitted to hardware for
      execution as an indicator that the engine is busy.
      
      Fixes: 4680816b ("drm/i915: Wait first for submission, before waiting for request completion"
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104840Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180129144104.3921-1-chris@chris-wilson.co.ukReviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
      (cherry picked from commit 88923048)
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      b26a32a8
  18. 31 1月, 2018 1 次提交
    • C
      drm/i915: Always run hangcheck while the GPU is busy · 88923048
      Chris Wilson 提交于
      Previously, we relied on only running the hangcheck while somebody was
      waiting on the GPU, in order to minimise the amount of time hangcheck
      had to run. (If nobody was watching the GPU, nobody would notice if the
      GPU wasn't responding -- eventually somebody would care and so kick
      hangcheck into action.) However, this falls apart from around commit
      4680816b ("drm/i915: Wait first for submission, before waiting for
      request completion"), as not all waiters declare themselves to hangcheck
      and so we could switch off hangcheck and miss GPU hangs even when
      waiting under the struct_mutex.
      
      If we enable hangcheck from the first request submission, and let it run
      until the GPU is idle again, we forgo all the complexity involved with
      only enabling around waiters. We just have to remember to be careful that
      we do not declare a GPU hang when idly waiting for the next request to
      be come ready, as we will run hangcheck continuously even when the
      engines are stalled waiting for external events. This should be true
      already as we should only be tracking requests submitted to hardware for
      execution as an indicator that the engine is busy.
      
      Fixes: 4680816b ("drm/i915: Wait first for submission, before waiting for request completion"
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104840Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180129144104.3921-1-chris@chris-wilson.co.ukReviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
      88923048
  19. 04 1月, 2018 1 次提交
  20. 14 12月, 2017 1 次提交
    • C
      drm/i915: Stop listening to request resubmission from the signaler kthread · 74c7b078
      Chris Wilson 提交于
      The intent here was that we would be listening to
      i915_gem_request_unsubmit in order to cancel the signaler quickly and
      release the reference on the request. Cancelling the signaler is done
      directly via intel_engine_cancel_signaling (called from unsubmit), but
      that does not directly wake up the signaling thread, and neither does
      setting the request->global_seqno back to zero wake up listeners to the
      request->execute waitqueue. So the only time that listening to the
      request->execute waitqueue would wake up the signaling kthread would be
      on the request resubmission, during which time we would already receive
      wake ups from rejoining the global breadcrumbs wait rbtree.
      
      Trying to wake up to release the request remains an issue. If the
      signaling was cancelled and no other request required signaling, then it
      is possible for us to shutdown with the reference on the request still
      held. To ensure that we do not try to shutdown, leaking that request, we
      kick the signaling threads whenever we disarm the breadcrumbs, i.e. on
      parking the engine when idle.
      
      v2: We do need to be sure to release the last reference on stopping the
      kthread; asserting that it has been dropped already is insufficient.
      
      Fixes: d6a2289d ("drm/i915: Remove the preempted request from the execution queue")
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171208121033.5236-1-chris@chris-wilson.co.ukAcked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      (cherry picked from commit 776bc27f)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      74c7b078
  21. 12 12月, 2017 1 次提交
  22. 11 12月, 2017 1 次提交
    • C
      drm/i915: Stop listening to request resubmission from the signaler kthread · 776bc27f
      Chris Wilson 提交于
      The intent here was that we would be listening to
      i915_gem_request_unsubmit in order to cancel the signaler quickly and
      release the reference on the request. Cancelling the signaler is done
      directly via intel_engine_cancel_signaling (called from unsubmit), but
      that does not directly wake up the signaling thread, and neither does
      setting the request->global_seqno back to zero wake up listeners to the
      request->execute waitqueue. So the only time that listening to the
      request->execute waitqueue would wake up the signaling kthread would be
      on the request resubmission, during which time we would already receive
      wake ups from rejoining the global breadcrumbs wait rbtree.
      
      Trying to wake up to release the request remains an issue. If the
      signaling was cancelled and no other request required signaling, then it
      is possible for us to shutdown with the reference on the request still
      held. To ensure that we do not try to shutdown, leaking that request, we
      kick the signaling threads whenever we disarm the breadcrumbs, i.e. on
      parking the engine when idle.
      
      v2: We do need to be sure to release the last reference on stopping the
      kthread; asserting that it has been dropped already is insufficient.
      
      Fixes: d6a2289d ("drm/i915: Remove the preempted request from the execution queue")
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171208121033.5236-1-chris@chris-wilson.co.ukAcked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      776bc27f
  23. 09 12月, 2017 1 次提交
  24. 21 11月, 2017 1 次提交
  25. 16 11月, 2017 1 次提交
  26. 10 11月, 2017 1 次提交
  27. 01 11月, 2017 1 次提交
  28. 26 10月, 2017 1 次提交
    • C
      drm/i915/guc: Always enable the breadcrumbs irq · bcbd5c33
      Chris Wilson 提交于
      The execlists emulation on top of the GuC (used for scheduling and
      preemption) depends on the MI_USER_INTERRUPT for its notifications and
      tasklet action. As we always employ the irq, there is no advantage in
      ever disabling it while we are using the GuC, so allow us to arm the
      breadcrumb irq when enabling GuC submission and disarm upon disabling.
      The impact should be lessened by the delayed irq disabling we do (we
      only disable after receiving an interrupt for which no one was wanting),
      but allowing guc to explicitly manage the irq in relation to itself is
      simpler and prevents an issue with losing an interrupt for preemption
      as it is not coupled to an active request.
      
      Internally, we add a reference counter (breadcrumbs.irq_enabled) as a
      simple mechanism to allow GuC to keep the breadcrumb irq enabled. To
      improve upon always enabling the irq while guc is selected, we need
      to hook into the parking facility of intel_engines so that we only enable
      the breadcrumbs while the GT is active (one step better would be to
      individually park/unpark each engine).
      
      In effect, this means that we keep the breadcrumb irq always enabled for
      the entire duration the guc is busy, whereas before we would try to
      switch it off whenever we idled for more than interrupt with no
      associated waiters. The difference *should* be negligible in practice!
      
      v2: Stop abusing fence signaling (and its auxiliary data structures) to
      enable the breadcrumbs irqs.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>,
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>,
      Link: https://patchwork.freedesktop.org/patch/msgid/20171025143943.7661-3-chris@chris-wilson.co.uk
      bcbd5c33
  29. 18 10月, 2017 1 次提交
  30. 27 9月, 2017 1 次提交
  31. 08 6月, 2017 2 次提交
  32. 26 4月, 2017 3 次提交
  33. 24 4月, 2017 1 次提交
  34. 04 4月, 2017 1 次提交