Re: [RFD] Automatic suspend

From: Rafael J. Wysocki
Date: Thu Feb 19 2009 - 07:57:33 EST


On Thursday 19 February 2009, Alan Stern wrote:
> On Thu, 19 Feb 2009, Rafael J. Wysocki wrote:
>
> > > If some devices are autosuspended after a local inactivity timeout, I
> > > don't want to wait for those devices to autosuspend if I know the code
> > > that needed to run is done. This could cause delays in the normal
> > > case,
> >
> > Isn't it a matter of adjusting the inactivity timeouts in a suitable way?
>
> It's not that simple. A single device driver has a very local view,
> not suitable for deciding whether the entire system should go to sleep.
>
> So for example, a disk driver might think it's appropriate to spin down
> the disk after 10 seconds of inactivity. But an overall system monitor
> might realize that nothing is going on right now and want to put the
> system to sleep immediately, without waiting the 10 seconds for the
> disk to autosuspend.

Now, the question is what criteria would the overall system monitor use to make
such a decision.

> > > and it could prevent suspend if a background process (not using
> > > wakelocks) is accessing a disk more frequently than its idle timeout.
> >
> > Well, actually, shouldn't it prevent suspend from happening? Arguably, it just
> > means that the disk is continuously being accessed with respect to the inactive
> > timeout granularity.
>
> That's true, but it shows the problem of making the autosleep decision
> based on disk activity. An auto-sleep should not have to wait for
> every device (or some suitable subset) to become idle for some minimum
> time; it should be able to kick in at short notice.

Again, the decision to trigger automatic suspend has to be based on some
well defined criteria and the (in)activity of devices seems to be one of them.

Thanks,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/