Subject: Re: power management and related concerns
To: Garrett D'Amore <garrett_damore@tadpole.com>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: tech-kern
Date: 06/30/2006 20:44:52
On Fri, 30 Jun 2006 17:28:15 -0700, "Garrett D'Amore"
<garrett_damore@tadpole.com> wrote:
> Well, I've made the mistake of looking at what we currently have in
> NetBSD. And comparing it with some real (our) hardware.
>
> There are few quick points for discussion:
>
> 1) there doesn't seem a clear way to indicate powerfail for a low
> battery condition in sysmon. Should I just be sending init some signal?
>
> 2) No way to indicate overtemp status either
>
> 3) Currently it isn't clear whether you should be registering with APM,
> sysmon, or something else for things like battery status, etc. It would
> be really, really good if drivers didn't have to do _both_ of these
> things. Can we maybe have a sysmon APM compatibility layer? (I guess
> there are some userland apps that "know" about APM. Bletch.)
>
> 4) We need some userland tools to talk to sysmon in base, I think.
> (E.g. to query batteries, etc.)
>
> 5) In many respects, sysmon looks like a good start. I've coded a quick
> power management driver for the Ultrabook IIi (okay, it was mostly a
> port from Solaris), and it basically works for things like lid switch,
> AC power cord un/plug, and power button.
>
I've been thinking similar thoughts. I have a paper design for (what I
had tentatively called) envstatd. The config file would look something
like this:
acpibat0 <.04 /bin/shutdown -p now
temp=acpitemp >70*2 /bin/shutdown -p now
where the *2 indicates that it has to happen twice in a row. A few more
frills, like shell variables for each config line -- the 'temp' means that
a script would be run with envstatd_temp set to the value. A | at the
start of the command would create a pipeline that would be fed the value
on stdin, to permit easy real-time graphing programs.
--Steven M. Bellovin, http://www.cs.columbia.edu/~smb