[Intel-gfx] [CI 3/5] drm/i915: Disable semaphores on Sandybridge

Jani Nikula jani.nikula at linux.intel.com
Tue Nov 21 09:57:30 UTC 2017


On Mon, 20 Nov 2017, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> I should have admitted defeat long ago as there has been a rare but
> persistent error on Sandybridge where semaphore signaling did not
> propagate to the waiter, leading to a GPU hang.

I'm late to the party, but I think the choice of patch ordering here is
a bit unfortunate. Or is it intentional that you can't backport this to
stable as-is?

BR,
Jani.

>
> With the work on fence signaling for v4.9, the impact of using CPU driven
> signaling was greatly reduced wrt to the latency of GPU semaphores,
> though without logical rings support, the benefit of reordering work to
> avoid bubbles is not realised (i.e. as it stands fence signaling is just
> a slower, more costly version of HW semaphores; but works more
> consistently). As a rough indicator of the difference,
>
> with semaphores:
> Sequential (3 engines, 1 processes): average 5.470us per cycle [expected 4.988us]
> w/o semaphores:
> Sequential (3 engines, 1 processes): average 15.771us per cycle [expected 4.923us]
>
> In comparison, v3.4:
> with semaphores:
> Sequential (3 engines, 1 processes): average 16.066us per cycle [expected 11.842us]
> w/o semaphores:
> Sequential (3 engines, 1 processes): average 23.460us per cycle [expected 11.839us]
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54226 #and 100+ dupes
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Acked-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index d470e10b2edd..d53bb8e872ba 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4999,20 +4999,12 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv)
>  
>  bool intel_sanitize_semaphores(struct drm_i915_private *dev_priv, int value)
>  {
> -	if (INTEL_GEN(dev_priv) < 6)
> -		return false;
> -
> -	/* TODO: make semaphores and Execlists play nicely together */
> -	if (HAS_EXECLISTS(dev_priv))
> +	if (!IS_GEN7(dev_priv))
>  		return false;
>  
>  	if (value >= 0)
>  		return value;
>  
> -	/* Enable semaphores on SNB when IO remapping is off */
> -	if (IS_GEN6(dev_priv) && intel_vtd_active())
> -		return false;
> -
>  	return true;
>  }

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list