[PATCH 2/2] skip-trylock
Chris Wilson
chris at chris-wilson.co.uk
Mon Nov 5 19:25:15 UTC 2018
---
drivers/gpu/drm/i915/i915_gem_shrinker.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gem_shrinker.c b/drivers/gpu/drm/i915/i915_gem_shrinker.c
index ea90d3a0d511..3a78c22cea01 100644
--- a/drivers/gpu/drm/i915/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c
@@ -45,15 +45,10 @@ static bool shrinker_lock(struct drm_i915_private *i915, bool *unlock)
case MUTEX_TRYLOCK_FAILED:
*unlock = false;
- preempt_disable();
- do {
- cpu_relax();
- if (mutex_trylock(&i915->drm.struct_mutex)) {
- *unlock = true;
- break;
- }
- } while (!need_resched());
- preempt_enable();
+ if (current_is_kswapd()) {
+ mutex_lock(&i915->drm.struct_mutex);
+ *unlock = true;
+ }
return *unlock;
case MUTEX_TRYLOCK_SUCCESS:
--
2.19.1
More information about the Intel-gfx-trybot
mailing list