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