Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: estd and P-States

On Sat, Sep 04, 2010 at 10:21:03AM +0200, Jesus Mariño wrote:
> I did it in FreeBSD, C1 when performance, C2 when economy applies, to save
> battery.

First things first: last time I checked, none of the BSD operating systems
had *fully* functional C-states. The sysctl-knob FreeBSD gives you limits the
highest C-state available, but AFAIU this is more of a debug-feature related
to the general problems with C-states.

Hypothetically speaking, if C-states were functional, you do not want nor
need to manually adjust the available C-states. There are no clear parallels
to "performance" or "economy" with C-states -- and if there are, these are
bugs in the implementation. When a given C-state is entered, the processor
is already idle. The driver or the kernel will decide which is the appropriate
C-state to enter.

> Ok, understood. My intention was activate C2 or even C3 when the laptop is
> on battery.

With modern x86 laptops, there is a very good chance that the firmware will
do this for you. It may also activate CPU-specific C-states (C4, ..., Cn)
when acpiacad(4) is disconnected. You should neither care nor worry about

> So, the use of acpicpu in the kernel, has any advantage ? powerd or 'estd'
> will be more efficient in terms of power saving?

The acpicpu(4) is just a driver. It is required on both new Intel and AMD
processors. It is also expected to be more robust than the older
implementations. Additional features such as processor thermal control (see
acpitz(4) for short description) will be supported soon. Eventually, C-states
will be supported too.

The general purpose powerd(8) daemon should be always enabled on a laptop. 
The estd(1) daemon is third-party code to patch up limitations of NetBSD;
you can use it or control the frequencies manually.

> If not, then the only thing I can do is fix the cpu frequency to the lowest
> value when on battery.

That sounds reasonable at the current situation. In the ideal case, there
would be no need for this kind of tweaking and pushing of buttons.

You can consider also other well-known small things when running on
batteries; set the brightness to minimum, possibly stop daemons such as
cron(8), mount /var/log to tmpfs or stop syslogd(8), consider lowering disk
idle timeouts, et. cetera. The existing acadapter-script contains some hints.

- Jukka.

P.S. Yes, I know; all this should be clearly documented somewhere.

Home | Main Index | Thread Index | Old Index