]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/gem: Lazily acquire the device wakeref for freeing objects
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 3 May 2020 17:15:13 +0000 (18:15 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 4 May 2020 10:12:37 +0000 (11:12 +0100)
We only need the device wakeref on freeing the objects if we have to
unbind the object from the global GTT, or otherwise update device
information. If the objects are clean, we never need the wakeref, so
avoid taking until required.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Reviewed-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200503171513.18704-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_object.c

index 9d1d0131f7c2e24c882e14d9c2e09b9be2b309ec..99356c00c19ee7afcc200671471cfc7a1ea7f855 100644 (file)
@@ -162,9 +162,7 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915,
                                    struct llist_node *freed)
 {
        struct drm_i915_gem_object *obj, *on;
-       intel_wakeref_t wakeref;
 
-       wakeref = intel_runtime_pm_get(&i915->runtime_pm);
        llist_for_each_entry_safe(obj, on, freed, freed) {
                struct i915_mmap_offset *mmo, *mn;
 
@@ -224,7 +222,6 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915,
                call_rcu(&obj->rcu, __i915_gem_free_object_rcu);
                cond_resched();
        }
-       intel_runtime_pm_put(&i915->runtime_pm, wakeref);
 }
 
 void i915_gem_flush_free_objects(struct drm_i915_private *i915)