[PATCH 12/18] drm/i915: try to reset the gpu before unload

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 30, 2012 at 09:54:31AM -0700, Jesse Barnes wrote:
> On Sun, 18 Mar 2012 13:39:52 -0700
> Ben Widawsky <ben at bwidawsk.net> wrote:
> 
> > paranoia
> > 
> > For context support the HW expects the default context to always be
> > available as there is no way to shut off HW contexts once turned on
> > (afaics). This is problematic when unloading the driver as we have no
> > way to prevent the GPU from expecting the BO to still be present once
> > unloaded.
> > 
> > The best we can do to remedy the situation is to attempt a GPU reset
> > when doing the unload.
> > 
> > NOTE: this patch isn't *really* required to go with the rest of the
> > context serious.
> > 
> > Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> > ---
> >  drivers/gpu/drm/i915/i915_gem.c |    3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index c1aab45..848cc45 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -3910,6 +3910,9 @@ i915_gem_lastclose(struct drm_device *dev)
> >  	ret = i915_gem_idle(dev);
> >  	if (ret)
> >  		DRM_ERROR("failed to idle hardware: %d\n", ret);
> > +	ret = i915_reset(dev, GRDOM_FULL);
> > +	if (ret)
> > +		DRM_ERROR("failed to reset gpu: %d\n", ret);
> >  }
> >  
> >  static void
> 
> This reminds me that we should make our reset finer grained.  We
> generally only need to reset the render engine when we detect an error,
> but today we reset display and media unconditionally too.  Not
> resetting the display would make reset more invisible like it ought to
> be...
> 
> I haven't tested it, but it's yet another thing for our TODO list.

I think with the pch split stuff we don't already reset display. And in
any cases the global gtt seems to just keep going. The real problem is
that you will notice the reset anyway, because we tend to wait a few
seconds before we declare the gpu dead.

For that we also need some improvements (and better culprit detection so
that we can start to reset earlier). That one is on my todo ;-)
-Daniel
-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux