Subject: Re: power management and idle detection on non-x86
To: Michael Lorenz <macallan@NetBSD.org>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: tech-kern
Date: 05/07/2006 16:08:58
On Sun, 7 May 2006 15:05:45 -0400, Michael Lorenz <macallan@NetBSD.org>
wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello,
>
> I've been working to get some sort of power management into my
> sparcbook for a while now and apart from powerhooks in many device
> drivers there are a few other things missing.
> First, we need a way to know when the machine is idle so we can dim
> backlight at some point, or fall asleep. What I'd like to have is a
> bunch of 'idle timers' - just write the current timestamp into a more
> or less global variable whenever the mouse is moved, some key is
> pressed etc., probably keep different counters for different devices.
> With this we could detect 'idleness' by just comparing these variables
> to current time, if enough of them differ by some predefined value we
> can take actions. On PCs this is probably handled by the APM BIOS but
> on macppc or sparc we don't have anything like that so we need our own.
> So, before I'm wasting my time inventing the wheel the 5th time - do we
> have something like this somewhere in the kernel? Should it be
> integrated with powerd? What about powerd vs. apmd? Their scopes seem
> to overlap quite a bit.
>
Are you assuming X or console? In X, it's handled by the X server, under
control of the dpms option; see xset(1). Briefly, though, I do
xset +dpms
in my .xinitrc file, and the video driver for X turns off the backlight.
Note that the X server already knows when the mouse or keyboard have been
used.
--Steven M. Bellovin, http://www.cs.columbia.edu/~smb