PATCH: Pentium-M deeper sleep support in idle loop
Marko Zec
zec at tel.fer.hr
Fri Oct 17 07:35:44 PDT 2003
Huh... the original version could result in occasional ata drive lockups.
Hopefully improved version can be found on the same URL:
http://www.tel.fer.hr/zec/BSD/pm/4.8-ich-ds.patch
Marko
On Friday 17 October 2003 02:20, Marko Zec wrote:
> 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
More information about the freebsd-mobile
mailing list