New (for us :) power usage tricks

Hasso Tepper hasso at estpak.ee
Fri Sep 5 04:03:50 PDT 2008


I made some effort to reduce power usage on mobile platforms to help my 
laptop to run cooler. We are still far from other more common platforms, 
but it's much better than it was. Note, that defualts are not changed, so 
if you want to use new features, you have to do some tuning work.

acpi_cpu(4) was updated to the latest code from FreeBSD HEAD which allows 
to use higher lower (in sense of power usage) C states on modern 
multicore CPUs.

hw.acpi.cpu.cx_lowest: C3
hw.cpu0.cx_supported: C1/1 C2/1 C3/17
hw.cpu0.cx_lowest: C3
hw.cpu0.cx_usage: 0.00% 2.01% 97.98%
hw.cpu1.cx_supported: C1/1 C2/1 C3/17
hw.cpu1.cx_lowest: C3
hw.cpu1.cx_usage: 0.00% 1.30% 98.69%

Default cx_lowest is C1, you have to change it with sysctl(3). You can 
change it per cpu (hw.cpuN.cx_lowest) or for all CPU's (cores) at once 
(hw.acpi.cpu.cx_lowest). hw.cpuN.cx_supported tells you what staes are 
supported and what is latency impact. hw.cpuN.cx_usage gives to you some 
stats.

I also brought in quite minimal patchset from FreeBSD pci(4) code which 
allows to put not used (devices with no drivers attached) PCI devices 
into D3 state (deep sleep). Default is again not to use D3 and to use the 
feature you have to use hw.pci.do_power_nodriver tunable (see sysctl -d 
hw.pci.do_power_nodriver for values you can use).


enjoy,

-- 
Hasso Tepper





More information about the Users mailing list