summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_pm.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-04-30 10:44:04 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2019-04-30 16:04:54 +0100
commit8a9b36e2588b85e954f71dc03f165091a6fe0593 (patch)
treed6bf4b4419ae6b8d0ec8b67df2644df29195d162 /drivers/gpu/drm/i915/i915_gem_pm.c
parentd5f9db2c2a097b881c618b1db2e6870863c46205 (diff)
downloadlinux-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.c8
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))