Following 58b4c1a07ada ("drm/i915: Reduce nested prepare_remote_context() to a trylock"), we punt to the caller if the local intel_context happens to be busy as we try to rewrite the sseu (due to retiring in another thread). As the interlude should be short, spin until the lock is available. The regret for using mutex_trylock() and not an atomic insertion of the barrier is growing... Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> --- drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c index 2ea4790f3721..571cc996577c 100644 --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c @@ -1197,7 +1197,10 @@ __sseu_test(const char *name, if (ret) goto out_pm; - ret = intel_context_reconfigure_sseu(ce, sseu); + do { + ret = intel_context_reconfigure_sseu(ce, sseu); + cond_resched(); + } while (ret == -EAGAIN); if (ret) goto out_spin; -- 2.24.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx