[Intel-gfx] [PATCH] drm/i915/selftest: If reconfigure_sseu is busy, try again

Chris Wilson chris at chris-wilson.co.uk
Tue Nov 26 16:47:12 UTC 2019


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 at chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
 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



More information about the Intel-gfx mailing list