[ltp] Maximum Battery Capacity of an T60 under Linux

Laurent Gilson linux-thinkpad@linux-thinkpad.org
Fri, 14 Jul 2006 10:52:17 +0200


Hello,

>> Look at /proc/acpi/processor/CPU/power. Does the bus master activity  
>> drop
>> to 000...000 if you do nothing ? Do the cores reach C4 or deeper ?
>
> Hum, I can only see C1 and C2 there. Am I missing something in the
> kernek, or is it a hardware limitation? (It's not a thinkpad, but a Mac
> Mini)

Mac Mini ? The one with intel Core-Something or a Power-based one ?

The CoreDuo, PentiumM,... most modern Intel and AMD chips can do 8  
C-States plus C0 (C0-C8). C8 is the best powersaving mode, C0 is running  
and executing stuff.

Build into a PC motherboard and connected to stuff like AGP/PCIe  
Gfx-cards, WLAN, USB, ... anything using DMA C5-C8 become nearly  
unreachable. The deeper the sleep, the more functions are switched off. At  
C3 the CPU <-> FSB interface no longer processes the bus-snooping  
protocol. That protocol keeps the CPU cache (L1, L2,...) in sync with the  
RAM. It is needed because stuff like WLAN and AGP can write directly into  
the RAM, w/o asking the CPU first.

Example:
Datablock A is in RAM
CPU reads Datablock A (puts it into L2 cache)
CPU goes idle, enters C1, C2, C3 and finaly C4
WLAN rewrites Datablock A with new data in RAM
CPU wakes up
CPU rereads Datablock A => from cache <= reads old, no longer valid data.

There are workarounds (the WLAN puts the CPU in < C2, then writes into  
RAM. Or dump the cache if a unsafe write to the RAM happend). But normaly  
the CPU-drivers do not enter any low states if they are not 100% sure all  
hardware is using the workarounds.

If you are on a powerbased system stuff may be even more complex. I just  
donīt know which C-states Power-CPUs use.

cu