Re: [RFD] Automatic suspend

Alan Stern
2009-02-18T23:31:15Z

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.

> > 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.

Alan Stern