[PATCH 2/3] perr
Chris Wilson
chris at chris-wilson.co.uk
Fri Sep 1 11:34:44 UTC 2017
---
drivers/gpu/drm/i915/i915_gem.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 891e32241d51..982f4afd9d3d 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3516,6 +3516,7 @@ static void wakeref_timeout(struct work_struct *work)
unsigned int count;
mutex_lock(&dev_priv->mm.wakeref_lock);
+ pr_err("%s: wakeref -> 0\n", __func__);
count = atomic_xchg(&dev_priv->mm.wakeref_count, 0);
if (count) {
unsigned long timeout;
@@ -3545,6 +3546,7 @@ static void wakeref_timeout(struct work_struct *work)
round_jiffies_up_relative(timeout));
} else {
intel_runtime_pm_put(dev_priv);
+ pr_err("%s: wakeref -> -1\n", __func__);
atomic_set(&dev_priv->mm.wakeref_count, -1);
}
mutex_unlock(&dev_priv->mm.wakeref_lock);
@@ -3577,6 +3579,7 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
mutex_lock(&i915->mm.wakeref_lock);
if (list_empty(&obj->mm.wakeref_link)) {
+ pr_err("%s: wakeref++ %d\n", __func__, atomic_read(&i915->mm.wakeref_count));
if (atomic_inc_and_test(&i915->mm.wakeref_count)) {
intel_runtime_pm_get(i915);
schedule_delayed_work(&i915->mm.wakeref_work,
@@ -4620,6 +4623,7 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
intel_runtime_pm_get(dev_priv);
while (flush_delayed_work(&dev_priv->mm.wakeref_work))
;
+ pr_err("%s: wakeref? %d\n", __func__, atomic_read(&dev_priv->mm.wakeref_count));
WARN_ON(atomic_read(&dev_priv->mm.wakeref_count) != -1);
intel_suspend_gt_powersave(dev_priv);
@@ -5008,6 +5012,7 @@ i915_gem_load_init(struct drm_i915_private *dev_priv)
INIT_LIST_HEAD(&dev_priv->mm.wakeref_list);
INIT_DELAYED_WORK(&dev_priv->mm.wakeref_work, wakeref_timeout);
mutex_init(&dev_priv->mm.wakeref_lock);
+ pr_err("%s: wakeref-> -1\n", __func__);
atomic_set(&dev_priv->mm.wakeref_count, -1);
INIT_WORK(&dev_priv->mm.free_work, __i915_gem_free_work);
@@ -5058,6 +5063,7 @@ void i915_gem_load_cleanup(struct drm_i915_private *dev_priv)
while (flush_delayed_work(&dev_priv->mm.wakeref_work))
;
+ pr_err("%s: wakeref? %d\n", __func__, atomic_read(&dev_priv->mm.wakeref_count));
WARN_ON(atomic_read(&dev_priv->mm.wakeref_count) != -1);
kmem_cache_destroy(dev_priv->priorities);
--
2.14.1
More information about the Intel-gfx-trybot
mailing list