[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