[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 11:50:42AM -0700, Ben Widawsky wrote:
> On Thu, 29 Mar 2012 21:31:21 +0200
> Daniel Vetter <daniel at ffwll.ch> wrote:
> 
> > On Sun, Mar 18, 2012 at 01:39:52PM -0700, Ben Widawsky 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>
> > 
> > I think the paranoia here is justified (albeit it would benefit from some
> > commit-message love imo). But we do not support i915_reset on all gens, so
> > I think you need to add a gen >= 5 check here.
> 
> I think i915_reset does the right thing, but I'm not sure. It has a big
> gen switch statement in it.

Yeah, it just returns. But on reading i915_reset I think you don't want
all it does - it resets the entire modeset and gem state, too. I think it
would be better to just do the hw reset and not bother with everything
else - the only chance is that it accidentally breaks module unload.

What about extracting the actual hw reset code (i.e. the switch(gen)
stuff) into i915_do_reset and only calling that? If you want, add the
is_gen5 check, but given that it's just module unload I don't care about
fried hw due to a not-so-well-working gpu reset ;-)
-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