[Intel-gfx] [PATCH] drm/i915: enable semaphores on gen6 if dmar is not active

Ben Widawsky ben at bwidawsk.net
Thu May 10 01:03:57 CEST 2012


On Thu, 10 May 2012 00:40:20 +0200
Daniel Vetter <daniel.vetter at ffwll.ch> wrote:

> Inspired by the recent ppgtt regression report, where switching of
> dmar only for the gpu seems to fix things completely, I've looked
> again at the semaphores+vt-d situation.
> 
> Contrary to my earlier testing a few months back my system is now
> stable with dmar disabled for the igd, and not only when disabling
> dmar completely.
> 
> So I'm rather hopeful that all our recent fixes for snb have changed
> things for code and it's time to try enabling semaphores again. We've
> also had issues with enabling semaphores which are not vt-d related,
> but I guess these are all fixed by the autoreport-disabling and lazy
> request fix. And there's only one way to find out whether there are
> still other issues ...
> 
> When I've tried to apply this patch I've noticed that semaphores on
> gen6 have already silently been added in
> 
> commit 2911a35b2e4eb87ec48d03aeb11f019e51ae3c0d
> Author: Ben Widawsky <ben at bwidawsk.net>
> Date:   Thu Apr 5 14:47:36 2012 -0700
> 
>     drm/i915: use semaphores for the display plane
> 
> Fix this up by only checking whether dmar is enabled on the gfx (not
> on the entire system).

Heh. It wasn't on purpose! I want to blame this on git, but I honestly
don't know what happened.

> 
> Cc: Ben Widawsky <ben at bwidawsk.net>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Reviewed-by: Ben Widawsky <ben at bwidawsk.net>

> ---
>  drivers/gpu/drm/i915/i915_drv.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 77b7a50..1ccfc23 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -407,9 +407,11 @@ bool i915_semaphore_is_enabled(struct drm_device *dev)
>  	if (i915_semaphores >= 0)
>  		return i915_semaphores;
>  
> +#ifdef CONFIG_INTEL_IOMMU
>  	/* Enable semaphores on SNB when IO remapping is off */
> -	if (INTEL_INFO(dev)->gen == 6)
> -		return !intel_iommu_enabled;
> +	if (INTEL_INFO(dev)->gen == 6 && intel_iommu_gfx_mapped)
> +		return false;
> +#endif
>  
>  	return 1;
>  }



-- 
Ben Widawsky, Intel Open Source Technology Center



More information about the Intel-gfx mailing list