[ltp] longer battery life on t40, r40, etc?

mukesh agrawal linux-thinkpad@linux-thinkpad.org
Fri, 17 Oct 2003 11:19:47 -0400 (EDT)


Saw the message below on a FreeBSD mailing list... Does anyone know if
something similar has already been done in Linux, or (if not), if there
are plans to do so?

The reason I ask is that I thought that the last time I looked, APM halt
did not work with my T40 and kernel 2.4.21

(I'm already using speedstep and cpudyn to scale CPU speed, but I'm
wondering about this "deeper sleep".)

Thanks!

---

>From http://www.tel.fer.hr/zec/BSD/pm/4.8-ich-ds.patch you can fetch an
experimental patch for the 4.8-RELEASE kernel that allows for significant
power savings on mobile systems by utilizing a feature called "deeper sleep
mode". The deeper sleep mode is available on recent Intel mobile processors
(Pentium III-M, Pentium IV-M and "Centrino" Mobile Pentium) in combination
with ICH3 / ICH4 chipsets, and is used to simultaneously stop the CPU clock
and significantly lower the chip core voltage. When in such a state, the CPU
is supposed to consume only around 0.6 W, according to Intel specs.

The power saving policy in idle loop is controlled by the machdep.cpu_idle_hlt
sysctl, which now has two new modes:

Mode 0  (std)  Do not halt the CPU, return from the idle loop as soon as
               possible.

Mode 1  (std)  Halt the CPU using the "hlt" instruction. CPU clock is not
               stopped (TSC keeps counting).

Mode 2  (new)  Halt the CPU using APM BIOS call followed by a "hlt". This
               method stops the clock, thus saving slightly more power.

Mode 3  (new)  Halt the CPU by entering the deeper sleep mode (max. power
               savings).

The battery life extension that can be obtained on an idle system using this
patch looks very promissing. Here's what I could observe on my ThinkPad X30
(Pentium III-M 1200, ICH-3 chipset) with a slightly worn-out battery:

+---------+----------------------+----------------------+
|cpu_idle |      LCD ON (dim)    |        LCD OFF       |
|  mode   | Bat. life |   gain   | Bat. life |   gain   |
+---------+-----------+----------+-----------+----------+
|    1    |    4:03   |          |    5:12   |          |
+---------+-----------+----------+-----------+----------+
|    2    |    4:10   |     2%   |    5:23   |     3%   |
+---------+-----------+----------+-----------+----------+
|    3    |    4:48   |    18%   |    6:21   |    22%   |
+---------+-----------+----------+-----------+----------+

I had no ICH-4 based laptop available for testing, so I cannot promise that
the patch will work on such systems, although it should.

The patch also introduces a new sysctl machdep.speedstep, which can be used to
directly controll the CPU clock frequency / operating voltage. If your BIOS
already correctly does this job you probably won't need this sysctl, however
the BIOS in my ThinkPad annoyingly persists with the same speedstep mode
regardless of the power source (external/battery), so I had to implement a
method to control it.

Anyhow, hope you like the patch... The usual liability disclaimer applies - if
anything goes wrong with your machinery or data, you are on your own :-)
Have fun,

Marko
_______________________________________________
freebsd-mobile@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "freebsd-mobile-unsubscribe@freebsd.org"