[Intel-gfx] [PATCH] i915 suspend/resume_noirq instead of suspend_late/resume_early

Daniel Vetter daniel at ffwll.ch
Thu Apr 28 08:32:55 UTC 2016


On Thu, Apr 28, 2016 at 12:36:29AM +0300, Imre Deak wrote:
> On Wed, 2016-04-27 at 22:33 +0200, Lukas Wunner wrote:
> > Hi,
> > 
> > On Wed, Apr 27, 2016 at 11:46:22AM -0700, Todd Brandt wrote:
> > >  I'd like to propose that we push the i915
> > > suspend_late/resume_early code
> > >  into suspend_noirq/resume_noirq in order to reduce the total
> > > suspend time
> > >  by ~15ms. According to the comments, when i915_pm_suspend_late was
> > > first
> > >  added to the kernel back in April 2014, it was done so to ensure
> > > that it
> > >  was called after the snd_hda_intel driver had finished its
> > > suspend.
> > 
> > Ordering issues like this one should be solved with
> > device_pm_wait_for_dev(),
> > not by shuffling code around among the callbacks.
> 
> We considered using device_pm_wait_for_dev() but decided not to, since
> it may dead lock in case of suspend/resume:
> https://lists.freedesktop.org/archives/intel-gfx/2014-December/057113.html

device_pm_wait_for_dev sounds like the exact counterpart to
EDEFERRED_PROBE for solving load-time ordering issues. It makes sense, and
I think we should use it. Somehow I missed in that entire discussion that
this exists.

In both cases you can fry/deadlock your kernel if you disable the async
queues, and imo that shouldn't be a concern for us.

Of course cc Rafael, in case something changed in this area.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list