drm/i915/gem: Lazily acquire the device wakeref for freeing objects
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
This commit is contained in:
parent
389b7f00c7
commit
6983dafa31
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user