mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-13 15:36:44 +07:00
drm/i915: Introduce engine_stalled helper
Move the engine stalled/pardoned check into a helper function. Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1484668747-9120-4-git-send-email-mika.kuoppala@intel.com Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
211b12afe6
commit
bf2f04366c
@ -2611,6 +2611,20 @@ i915_gem_find_active_request(struct intel_engine_cs *engine)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static bool engine_stalled(struct intel_engine_cs *engine)
|
||||
{
|
||||
if (!engine->hangcheck.stalled)
|
||||
return false;
|
||||
|
||||
/* Check for possible seqno movement after hang declaration */
|
||||
if (engine->hangcheck.seqno != intel_engine_get_seqno(engine)) {
|
||||
DRM_DEBUG_DRIVER("%s pardoned\n", engine->name);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct intel_engine_cs *engine;
|
||||
@ -2669,7 +2683,6 @@ static void i915_gem_reset_engine(struct intel_engine_cs *engine)
|
||||
{
|
||||
struct drm_i915_gem_request *request;
|
||||
struct i915_gem_context *hung_ctx;
|
||||
bool ring_hung;
|
||||
|
||||
if (engine->irq_seqno_barrier)
|
||||
engine->irq_seqno_barrier(engine);
|
||||
@ -2680,15 +2693,7 @@ static void i915_gem_reset_engine(struct intel_engine_cs *engine)
|
||||
|
||||
hung_ctx = request->ctx;
|
||||
|
||||
ring_hung = engine->hangcheck.stalled;
|
||||
if (engine->hangcheck.seqno != intel_engine_get_seqno(engine)) {
|
||||
DRM_DEBUG_DRIVER("%s pardoned, was guilty? %s\n",
|
||||
engine->name,
|
||||
yesno(ring_hung));
|
||||
ring_hung = false;
|
||||
}
|
||||
|
||||
if (ring_hung) {
|
||||
if (engine_stalled(engine)) {
|
||||
i915_gem_context_mark_guilty(hung_ctx);
|
||||
skip_request(request);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user