[Intel-gfx] [PATCH] drm/i915/selftest: If reconfigure_sseu is busy, try again
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Tue Nov 26 17:00:53 UTC 2019
On 26/11/2019 16:47, Chris Wilson wrote:
> 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;
>
>
Hm I looked at the selftests, saw error is correctly propagated, and
concluded it will be fine. I missed the problem selftests will not
actually retry. But wait, can we even count that userspace will if all
of a sudden ctx.set_param starts returning -EAGAIN sporadically? Feels
like we may need to revert.
Regards,
Tvrtko
More information about the Intel-gfx
mailing list