[PATCH] check mod_delayed_work
Tvrtko Ursulin
tursulin at ursulin.net
Tue Feb 20 14:35:48 UTC 2018
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 2 ++
drivers/gpu/drm/i915/i915_gem.c | 7 ++++++-
drivers/gpu/drm/i915/i915_gem_request.c | 1 +
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 76bfe909168c..b9747ec24ec9 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2355,6 +2355,8 @@ struct drm_i915_private {
struct delayed_work idle_work;
ktime_t last_init_time;
+
+ ktime_t idle_queued;
} gt;
/* perform PHY state sanity checks? */
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 631a2db2bb6e..fbf28c278220 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3420,6 +3420,11 @@ i915_gem_idle_work_handler(struct work_struct *work)
bool rearm_hangcheck;
ktime_t end;
+ end = ktime_get() - dev_priv->gt.idle_queued;
+ if (ktime_to_ms(end) < 100)
+ DRM_ERROR("idle work ran after %llums\n", ktime_to_ms(end));
+
+
if (!READ_ONCE(dev_priv->gt.awake))
return;
@@ -3445,7 +3450,7 @@ i915_gem_idle_work_handler(struct work_struct *work)
/* Currently busy, come back later */
mod_delayed_work(dev_priv->wq,
&dev_priv->gt.idle_work,
- msecs_to_jiffies(50));
+ msecs_to_jiffies(100));
goto out_rearm;
}
diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c
index 8bc7c50b8418..ee1295b297ab 100644
--- a/drivers/gpu/drm/i915/i915_gem_request.c
+++ b/drivers/gpu/drm/i915/i915_gem_request.c
@@ -321,6 +321,7 @@ static void unreserve_engine(struct intel_engine_cs *engine)
if (!--i915->gt.active_requests) {
/* Cancel the mark_busy() from our reserve_engine() */
GEM_BUG_ON(!i915->gt.awake);
+ i915->gt.idle_queued = ktime_get();
mod_delayed_work(i915->wq,
&i915->gt.idle_work,
msecs_to_jiffies(100));
--
2.14.1
More information about the Intel-gfx-trybot
mailing list