On Mon, 20 Nov 2017, Chris Wilson <[email protected]> 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 <[email protected]>
> Cc: Joonas Lahtinen <[email protected]>
> Acked-by: Mika Kuoppala <[email protected]>
> Reviewed-by: Joonas Lahtinen <[email protected]>
> ---
>  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
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to