[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