[Intel-gfx] [PATCH] drm/i915: enable semaphores on gen6 if dmar is not active
Daniel Vetter
daniel at ffwll.ch
Thu May 10 10:35:48 CEST 2012
On Wed, May 09, 2012 at 04:03:57PM -0700, Ben Widawsky wrote:
> 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.
I guess because we've changed the defaults there so bloody often, this
could easily be a bisect artifact ;-)
> > 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>
Thanks, patch pushed out.
-Daniel
>
> > ---
> > 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
--
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48
More information about the Intel-gfx
mailing list