diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2019-04-30 10:44:04 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2019-04-30 16:04:54 +0100 |
commit | 8a9b36e2588b85e954f71dc03f165091a6fe0593 (patch) | |
tree | d6bf4b4419ae6b8d0ec8b67df2644df29195d162 /drivers/gpu/drm/i915/i915_gem_pm.c | |
parent | d5f9db2c2a097b881c618b1db2e6870863c46205 (diff) | |
download | linux-stable-8a9b36e2588b85e954f71dc03f165091a6fe0593.tar.gz linux-stable-8a9b36e2588b85e954f71dc03f165091a6fe0593.tar.bz2 linux-stable-8a9b36e2588b85e954f71dc03f165091a6fe0593.zip |
drm/i915: Wait for the struct_mutex on idling
When the system is idling, contention for struct_mutex should be low and
so we will be more efficient to wait for a contended mutex than
reschedule.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190430094405.6127-1-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_pm.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_pm.c b/drivers/gpu/drm/i915/i915_gem_pm.c index 3554d55dae35..3b6e8d5be8e1 100644 --- a/drivers/gpu/drm/i915/i915_gem_pm.c +++ b/drivers/gpu/drm/i915/i915_gem_pm.c @@ -47,13 +47,7 @@ static void idle_work_handler(struct work_struct *work) struct drm_i915_private *i915 = container_of(work, typeof(*i915), gem.idle_work.work); - if (!mutex_trylock(&i915->drm.struct_mutex)) { - /* Currently busy, come back later */ - mod_delayed_work(i915->wq, - &i915->gem.idle_work, - msecs_to_jiffies(50)); - return; - } + mutex_lock(&i915->drm.struct_mutex); intel_wakeref_lock(&i915->gt.wakeref); if (!intel_wakeref_active(&i915->gt.wakeref)) |