2008-01-18 19:06:59

by Chodorenko Michail

[permalink] [raw]
Subject: PROBLEM: Celeron Core

I have a laptop "Extensa 5220", with the processor Celeron based on 'core'
technology.
There is ~ / arch/i386/kernel/cpu/cpufreq/p4-clockmod.c in the kernel
source code
but there's no line identification of my CPU for apply freqency change
need to add a ID line 0х16


"that instead of p4-clockmod, if possible.\n");
switch (c->x86_model) {
case 0x0E: /* Core */
+ case 0x16: /* Celeron Core */
case 0x0F: /* Core Duo */
p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
return
speedstep_get_processor_frequency(SPEEDSTEP_PROCESSOR_PCORE);



2008-01-18 21:11:36

by Andi Kleen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

Chodorenko Michail <[email protected]> writes:

> I have a laptop "Extensa 5220", with the processor Celeron based on 'core'
> technology.
> There is ~ / arch/i386/kernel/cpu/cpufreq/p4-clockmod.c in the kernel
> source code
> but there's no line identification of my CPU for apply freqency change
> need to add a ID line 0х16

Note that driver will likely do clock throttling on your CPU.
Using that is usually a bad idea because it does not actually
safe power. It's only intended to let the CPU cool down in some situations.

-Andi

2008-01-19 00:28:40

by Matt Mackall

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core


On Fri, 2008-01-18 at 22:11 +0100, Andi Kleen wrote:
> Chodorenko Michail <[email protected]> writes:
>
> > I have a laptop "Extensa 5220", with the processor Celeron based on 'core'
> > technology.
> > There is ~ / arch/i386/kernel/cpu/cpufreq/p4-clockmod.c in the kernel
> > source code
> > but there's no line identification of my CPU for apply freqency change
> > need to add a ID line 0х16
>
> Note that driver will likely do clock throttling on your CPU.
> Using that is usually a bad idea because it does not actually
> safe power. It's only intended to let the CPU cool down in some situations.

Power consumption is more or less exactly equal to heat production
(that's where the power goes, after all!), so either clock throttling
DOES save power or it DOES NOT cool the CPU.

--
Mathematics is the supreme nostalgia of our time.

2008-01-19 01:11:58

by Andi Kleen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Fri, Jan 18, 2008 at 06:27:57PM -0600, Matt Mackall wrote:
>
> On Fri, 2008-01-18 at 22:11 +0100, Andi Kleen wrote:
> > Chodorenko Michail <[email protected]> writes:
> >
> > > I have a laptop "Extensa 5220", with the processor Celeron based on 'core'
> > > technology.
> > > There is ~ / arch/i386/kernel/cpu/cpufreq/p4-clockmod.c in the kernel
> > > source code
> > > but there's no line identification of my CPU for apply freqency change
> > > need to add a ID line 0х16
> >
> > Note that driver will likely do clock throttling on your CPU.
> > Using that is usually a bad idea because it does not actually
> > safe power. It's only intended to let the CPU cool down in some situations.
>
> Power consumption is more or less exactly equal to heat production
> (that's where the power goes, after all!), so either clock throttling
> DOES save power or it DOES NOT cool the CPU.

No actually the way it works on modern x86 CPUs is that the best
strategy for saving power is to do things quickly and then
idle longer. That means on anything that has reasonably
deep sleep modi e.g. on older server/desktop systems things might
be slightly different because they had very little power saving
features enabled, but it's definitely true for all
laptop systems from the last several years. But even
on desktop/server throttling tends to be a bad idea.

Intel style throttling makes the CPU skip cycles so the maximum built
up heat for a time unit is less, but it will run active for longer that
makes it overall take more power for a given work unit.

Here's a better description from Dominik:

http://article.gmane.org/gmane.linux.kernel.cpufreq/3497

Note the conditions he describes are quite common. Also the OP
CPU likely has C2 and even deeper sleep modi.

Another problem with throttling / p4-clockmod is that on
at least some CPUs (not necessarily P-M, but we saw this on
some P4s) is that they can create quite long user visible
latencies. You might actually get "hanging mouse pointers"
from it if you use it with an aggressive governour like ondemand.

The normal use case for Intel throttling is to just do
an emergency cool down in case the CPU fails (down to thermal
shutdown). And that is done transparently behind Linux's back.

-Andi

2008-01-19 04:11:31

by Matt Mackall

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core


On Sat, 2008-01-19 at 02:15 +0100, Andi Kleen wrote:
> On Fri, Jan 18, 2008 at 06:27:57PM -0600, Matt Mackall wrote:
> >
> > On Fri, 2008-01-18 at 22:11 +0100, Andi Kleen wrote:
> > > Chodorenko Michail <[email protected]> writes:
> > >
> > > > I have a laptop "Extensa 5220", with the processor Celeron based on 'core'
> > > > technology.
> > > > There is ~ / arch/i386/kernel/cpu/cpufreq/p4-clockmod.c in the kernel
> > > > source code
> > > > but there's no line identification of my CPU for apply freqency change
> > > > need to add a ID line 0х16
> > >
> > > Note that driver will likely do clock throttling on your CPU.
> > > Using that is usually a bad idea because it does not actually
> > > safe power. It's only intended to let the CPU cool down in some situations.
> >
> > Power consumption is more or less exactly equal to heat production
> > (that's where the power goes, after all!), so either clock throttling
> > DOES save power or it DOES NOT cool the CPU.
>
> No actually the way it works on modern x86 CPUs is that the best
> strategy for saving power is to do things quickly and then
> idle longer. That means on anything that has reasonably
> deep sleep modi e.g. on older server/desktop systems things might
> be slightly different because they had very little power saving
> features enabled, but it's definitely true for all
> laptop systems from the last several years. But even
> on desktop/server throttling tends to be a bad idea.

Dominik is measuring energy expended (watts * seconds) vs work done (CPU
cycles). But your claim above is "clock throttling...does not save power
[but it lets] the CPU cool down", which talks about power (watts) and
heat (also watts, in fact the *very same* watts) and is physically
impossible. A CPU turns power into heat. Less heat out implies less
power in.

So while throttling may be less efficient in terms of watt seconds used
to compile something than running at full speed, it is incorrect to say
it uses less power. One machine running for an hour throttled to 50%
uses less power (and therefore less battery and cooling) than another
running at full speed for that same hour.

The first machine may take significantly longer to complete its task (or
it may not, if the task is reading email or watching video), but that's
another matter entirely. And whether it's more or less efficient than
other power-saving approaches is also another matter. Throttling does
save power.

--
Mathematics is the supreme nostalgia of our time.

2008-01-19 04:24:37

by Andi Kleen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

> So while throttling may be less efficient in terms of watt seconds used
> to compile something than running at full speed, it is incorrect to say
> it uses less power. One machine running for an hour throttled to 50%
> uses less power (and therefore less battery and cooling) than another
> running at full speed for that same hour.

Not for the same unit of work. If you just run endless loops you
might be true, but most systems don't do that.

In terms of laptops (or rather in most other systems too) you usually care
about battery life time while the system is mostly idling (waiting
for your key strokes etc.). In this case enabling throttling
as a cpufreq driver will not make your battery last longer.

Also skipping the clocks does not actually safe all very much power
compared to the other measures C-states or speedstep do (like dropping voltage)

This means enabling it will likely make your laptop battery last shorter.

-Andi

2008-01-19 04:42:12

by Matt Mackall

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core


On Sat, 2008-01-19 at 05:27 +0100, Andi Kleen wrote:
> > So while throttling may be less efficient in terms of watt seconds used
> > to compile something than running at full speed, it is incorrect to say
> > it uses less power. One machine running for an hour throttled to 50%
> > uses less power (and therefore less battery and cooling) than another
> > running at full speed for that same hour.
>
> Not for the same unit of work. If you just run endless loops you
> might be true, but most systems don't do that.

Yes, most systems idle.

> In terms of laptops (or rather in most other systems too) you usually care
> about battery life time while the system is mostly idling (waiting
> for your key strokes etc.). In this case enabling throttling
> as a cpufreq driver will not make your battery last longer.

It will relative to not throttling.

You made a claim that is -physically impossible- as stated, a claim I've
seen here before and I'm correcting it. If something reduces heat, it
must save power *by the definition of heat and power*. And if you reduce
power usage, you will make your battery last longer.

Make any other statement you want about the efficiency of throttling per
unit work or the effectiveness of throttling relavite to other methods,
just stop repeating the claim that "throttling reduces heat but doesn't
save power". It goes against the law of conservation of energy.

--
Mathematics is the supreme nostalgia of our time.

2008-01-19 04:51:06

by Andi Kleen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

> It will relative to not throttling.

No it will not. Please reread Dominik's mail I linked to. It explains
it clearly.

> You made a claim that is -physically impossible- as stated, a claim I've
> seen here before and I'm correcting it. If something reduces heat, it
> must save power *by the definition of heat and power*. And if you reduce
> power usage, you will make your battery last longer.

I think the misunderstanding on your side is relative to what there
is less heat. Throttling essentially reduces temporary heat spikes on
the silicon, but does not make the system overall take less power
or generate less heat as measured over a longer time because it will
be idle less.

-Andi

2008-01-20 04:35:29

by David Newall

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

Andi Kleen wrote:
> I think the misunderstanding on your side is relative to what there
> is less heat. Throttling essentially reduces temporary heat spikes on
> the silicon, but does not make the system overall take less power
> or generate less heat as measured over a longer time because it will
> be idle less.
>

I don't understand this, and it seems wrong. Most machines spend most
of their time doing nothing, or as close to nothing as they're allowed.
Idle, in other words. Isn't it the case that an idle machine will use
less power when throttled than when not?

2008-01-20 05:10:25

by Andi Kleen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

> Isn't it the case that an idle machine will use
> less power when throttled than when not?

No that is not the case (not even on old CPUs)

-Andi

2008-01-20 05:23:49

by David Newall

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

Andi Kleen wrote:
>> Isn't it the case that an idle machine will use
>> less power when throttled than when not?
>>
>
> No that is not the case (not even on old CPUs)
>
Then why would it run cooler? What generates the heat when not
throttled? What stops generating heat when throttled? And you say this
happens without reducing power consumption? I'm not convinced. I'm a
long way from that.

2008-01-20 05:38:44

by Andi Kleen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Sun, Jan 20, 2008 at 03:53:41PM +1030, David Newall wrote:
> Andi Kleen wrote:
> >> Isn't it the case that an idle machine will use
> >> less power when throttled than when not?
> >>
> >
> > No that is not the case (not even on old CPUs)
> >
> Then why would it run cooler?

Ok for one more (but last) time:

Throttling just lowers the short term heat spikes to prevent
short term damage to the silicon. For that it focusses on lowering
the absolute temperature at a given point. That only applies
when the CPU is busy.

But for total power consumption (or rather more concretly conserving
your battery) you don't care about absolute temperature at a given point
(as long as it is not high enough that it destroys the CPU)
you care about how much power is consumed (and heat generated from that)
averaged out over a longer time.

And for most typical workloads (not running endless loops; significant
idle time) throttling makes no difference and in fact often (especially
on laptop CPUs with deeper sleep modi like the original reported
had one) makes it likely worse (see previous mails for details why)

> I'm not convinced. I'm along way from that.

Frankly that's fine for me. I don't really feel any need to convince you.
I can live with your metal model of CPU physics not being accurate.

-Andi (feeling a bit like a broken record)
>

2008-01-20 11:19:40

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Sat, 19 Jan 2008, Andi Kleen wrote:
> > So while throttling may be less efficient in terms of watt seconds used
> > to compile something than running at full speed, it is incorrect to say
> > it uses less power. One machine running for an hour throttled to 50%
> > uses less power (and therefore less battery and cooling) than another
> > running at full speed for that same hour.
>
> Not for the same unit of work. If you just run endless loops you
> might be true, but most systems don't do that.

So you mean energy (measured in J).
Power is energy/time unit (measured in W, i.e. J/s).

So I guess what you really want to say is: throttling decreases power
consumption, but on modern CPUs it increases the amount of energy needed
to perform the task.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2008-01-20 18:24:34

by Robert Hancock

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

David Newall wrote:
> Andi Kleen wrote:
>>> Isn't it the case that an idle machine will use
>>> less power when throttled than when not?
>>>
>> No that is not the case (not even on old CPUs)
>>
> Then why would it run cooler? What generates the heat when not
> throttled? What stops generating heat when throttled? And you say this
> happens without reducing power consumption? I'm not convinced. I'm a
> long way from that.

I believe that all throttling does is forcibly halt the CPU on a
particular duty cycle. This will reduce the rate of power consumption,
but reduces the CPU performance by a greater amount (since even at 100%
halted the CPU still consumes power) and so actually reduces performance
per watt. It will spread the heat and power usage produced from a given
workload task out in time (thus its usefulness in limiting CPU
temperature) but will consume more power overall.

Real CPU clock throttling schemes like SpeedStep, PowerNow, etc.
actually do increase performance per watt when they kick in.

2008-01-20 19:13:20

by Andi Kleen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

> I believe that all throttling does is forcibly halt the CPU on a
> particular duty cycle. This will reduce the rate of power consumption,
> but reduces the CPU performance by a greater amount (since even at 100%
> halted the CPU still consumes power) and so actually reduces performance
> per watt. It will spread the heat and power usage produced from a given
> workload task out in time (thus its usefulness in limiting CPU
> temperature) but will consume more power overall.

...and more importantly deep sleep states in idle save far more power than
anything else and with throttling the CPU is idle shorter.

-Andi

2008-01-20 19:14:49

by Matt Mackall

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core


On Sun, 2008-01-20 at 12:24 -0600, Robert Hancock wrote:
> David Newall wrote:
> > Andi Kleen wrote:
> >>> Isn't it the case that an idle machine will use
> >>> less power when throttled than when not?
> >>>
> >> No that is not the case (not even on old CPUs)
> >>
> > Then why would it run cooler? What generates the heat when not
> > throttled? What stops generating heat when throttled? And you say this
> > happens without reducing power consumption? I'm not convinced. I'm a
> > long way from that.
>
> I believe that all throttling does is forcibly halt the CPU on a
> particular duty cycle. This will reduce the rate of power consumption,
> but reduces the CPU performance by a greater amount (since even at 100%
> halted the CPU still consumes power) and so actually reduces performance
> per watt. It will spread the heat and power usage produced from a given
> workload task out in time (thus its usefulness in limiting CPU
> temperature) but will consume more power overall.

Your usage of "overall power" here is wrong. Power is an instantaneous
quantity (1/s) like velocity, and you are comparing it to energy which
is not an instaneous quantity, more like distance.

If we throttle the velocity of a car from 100km/h to 50km/h, it'll
obviously take longer for it travel a given distance. Now what will it
mean when we ask about its "overall velocity" when it reaches its
destination? We surely don't mean the distance travelled - that's not a
velocity! We can perhaps talk about its average velocity, which will
obviously be smaller.

> Real CPU clock throttling schemes like SpeedStep, PowerNow, etc.
> actually do increase performance per watt when they kick in.

That may be true. But the statement "throttling does not reduce power
usage" remains false. And the statement "throttling reduces heat
production but not power usage" remains physically impossible.

It might be true that "throttling increases energy usage per unit of
computation relative to no power saving measures at all", but that is
not incompatible with "throttling lets you run your laptop on battery
longer than no power saving measures at all", which is often what people
care about.

Voltage/frequency reduction is obviously a much better solution if it's
available as reducing voltage reduces power usage quadratically rather
than linearly. But beyond the quadratic/linear thing, the concept is the
same: use less power and your battery lasts longer.

--
Mathematics is the supreme nostalgia of our time.

2008-01-20 19:24:56

by Robert Hancock

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

Matt Mackall wrote:
> Your usage of "overall power" here is wrong. Power is an instantaneous
> quantity (1/s) like velocity, and you are comparing it to energy which
> is not an instaneous quantity, more like distance.
>
> If we throttle the velocity of a car from 100km/h to 50km/h, it'll
> obviously take longer for it travel a given distance. Now what will it
> mean when we ask about its "overall velocity" when it reaches its
> destination? We surely don't mean the distance travelled - that's not a
> velocity! We can perhaps talk about its average velocity, which will
> obviously be smaller.

You are right.. it should be that overall energy usage is higher with
clock throttling.

>
>> Real CPU clock throttling schemes like SpeedStep, PowerNow, etc.
>> actually do increase performance per watt when they kick in.
>
> That may be true. But the statement "throttling does not reduce power
> usage" remains false. And the statement "throttling reduces heat
> production but not power usage" remains physically impossible.

It reduces the rate of power usage (watts), however it will likely not
decreate or even increase the energy usage (i.e. watt-hours) of any
given computational task.

>
> It might be true that "throttling increases energy usage per unit of
> computation relative to no power saving measures at all", but that is
> not incompatible with "throttling lets you run your laptop on battery
> longer than no power saving measures at all", which is often what people
> care about.
>
> Voltage/frequency reduction is obviously a much better solution if it's
> available as reducing voltage reduces power usage quadratically rather
> than linearly. But beyond the quadratic/linear thing, the concept is the
> same: use less power and your battery lasts longer.

Clock throttling is not likely to save your battery, unless you have
tasks that are running at 100% CPU for an unlimited time or something,
and you force your CPU to throttle. Normally most people have tasks that
run and then the CPU idles - loading an email, displaying a web page,
etc. Clock throttling will just make these tasks utilize the CPU for a
longer time proportional to the amount clock throttling and therefore
negate any gains in battery usage.

2008-01-20 20:53:51

by Lennart Sorensen

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Sun, Jan 20, 2008 at 03:53:41PM +1030, David Newall wrote:
> Then why would it run cooler? What generates the heat when not
> throttled? What stops generating heat when throttled? And you say this
> happens without reducing power consumption? I'm not convinced. I'm a
> long way from that.

If your P4 runs along at 100% and starts getting hot it can start
throthling to only run half the clock cycles. This of course makes the
task running take twice as long to complete, but will reduce the heat
produced by the chip to perhaps 60 or 70% of what it was at 100% load at
normal speed. This lets the chip cool of a bit although the user won't
appreaciate the fact their program now runs slower, but such was life
with the P4 (at least if you didn't have a good cooling system in
place).

In cases where your system is not running at 100% load, but perhaps only
50% load you can instead save some power (and hence heat production) if
you slow the actual clock rate of the cpu and lower the voltage at the
same time, both things the throthling on the P4 did not do, since your
task only neds the chip running at 50% of normal speed in order to
complete the task in the minimum amount of time.

The throthling is about protecting the CPU from damage, not about saving
power (since it does cause the work to take longer to complete
preventing the cpu from going back to idling for a longer period of
time), while the other case is all about saving power when the system
isn't under enough load to require the full performance. Throthling had
nothing to do with an idle CPU where it should make no difference
(although it may actually affect in negatively), it was only about what
to do when under high load and getting too hot.

Sure the power consumption dropped while throthlin was active, since the
idea was to reduce heat output, but the performance dropped more than
the power consumption.

If you have a CPU that uses 100W at full load at full clock rate, and
uses 5W when idle, and uses 70W when throthled 50% under full load, then
a program using the cpu for full load for an hour without throthling and
then idles for an hour, would use less overall power than if you
throthled the system 50% and the program finishes in 2 hours. 100W for
an hour + 5W for an hour = 105Wh while 70W for two hours = 140Wh.

If you only need 50% then a modern CPU should use less than 50% of its
maximum power if you drop it's clock frequency to half and at the same
time reduce it's core voltage a bit. It may be able to run 50% load
with power management in 30W or 40W instead, which is much better than
what throthling did and it only does it when the cpu load is low enough
to not slow down the user, while throughling only applied when it would
slow down the user while under high load.

--
Len Sorensen

2008-01-20 21:29:35

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Sunday, 20 of January 2008, Robert Hancock wrote:
> Matt Mackall wrote:
> > Your usage of "overall power" here is wrong. Power is an instantaneous
> > quantity (1/s) like velocity, and you are comparing it to energy which
> > is not an instaneous quantity, more like distance.
> >
> > If we throttle the velocity of a car from 100km/h to 50km/h, it'll
> > obviously take longer for it travel a given distance. Now what will it
> > mean when we ask about its "overall velocity" when it reaches its
> > destination? We surely don't mean the distance travelled - that's not a
> > velocity! We can perhaps talk about its average velocity, which will
> > obviously be smaller.
>
> You are right.. it should be that overall energy usage is higher with
> clock throttling.

Well, I'm still thinking you mean "the average energy usage per unit of
computations". IOW, "one will use more energy to carry out the same
computations with throttling than without it".

> >> Real CPU clock throttling schemes like SpeedStep, PowerNow, etc.
> >> actually do increase performance per watt when they kick in.
> >
> > That may be true. But the statement "throttling does not reduce power
> > usage" remains false. And the statement "throttling reduces heat
> > production but not power usage" remains physically impossible.
>
> It reduces the rate of power usage (watts), however it will likely not
> decreate or even increase the energy usage (i.e. watt-hours) of any
> given computational task.

In this context "power" means "energy used over a unit of time", so by
decreasing power you cause less energy to be used over a unit of time, by
definition. Still, the total energy required to complete given computational
task is (on the average) equal to "power" * "total time of computations" and
this really has to be measured on a per task basis.

> > It might be true that "throttling increases energy usage per unit of
> > computation relative to no power saving measures at all", but that is
> > not incompatible with "throttling lets you run your laptop on battery
> > longer than no power saving measures at all", which is often what people
> > care about.
> >
> > Voltage/frequency reduction is obviously a much better solution if it's
> > available as reducing voltage reduces power usage quadratically rather
> > than linearly. But beyond the quadratic/linear thing, the concept is the
> > same: use less power and your battery lasts longer.
>
> Clock throttling is not likely to save your battery, unless you have
> tasks that are running at 100% CPU for an unlimited time or something,
> and you force your CPU to throttle. Normally most people have tasks that
> run and then the CPU idles - loading an email, displaying a web page,
> etc. Clock throttling will just make these tasks utilize the CPU for a
> longer time proportional to the amount clock throttling and therefore
> negate any gains in battery usage.

IMO clock throttling (as opposed to the reduction of the frequency of an idle
CPU) is only useful for preventing the CPU from overheating.

Greetings,
Rafael

2008-01-20 22:06:33

by Tomasz Chmielewski

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

>> Clock throttling is not likely to save your battery, unless you have
>> tasks that are running at 100% CPU for an unlimited time or something,
>> and you force your CPU to throttle. Normally most people have tasks that
>> run and then the CPU idles - loading an email, displaying a web page,
>> etc. Clock throttling will just make these tasks utilize the CPU for a
>> longer time proportional to the amount clock throttling and therefore
>> negate any gains in battery usage.

Aren't you forgetting about CPUfreq governors? Which mean: use the
maximum CPU frequency when the system is busy, throttle down (or lower
voltage) when the system is idle.

So yes, throttling will save the battery.

Besides, not all CPUs support power management (voltage control).


> IMO clock throttling (as opposed to the reduction of the frequency of an idle
> CPU) is only useful for preventing the CPU from overheating.

And for reducing power on CPUs that can't do any power management, just
throttling.

For example, a server that doesn't crunch any numbers at night will
certainly use less power when throttled.


--
Tomasz Chmielewski
http://wpkg.org

2008-01-20 22:24:24

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Sunday, 20 of January 2008, Tomasz Chmielewski wrote:
> >> Clock throttling is not likely to save your battery, unless you have
> >> tasks that are running at 100% CPU for an unlimited time or something,
> >> and you force your CPU to throttle. Normally most people have tasks that
> >> run and then the CPU idles - loading an email, displaying a web page,
> >> etc. Clock throttling will just make these tasks utilize the CPU for a
> >> longer time proportional to the amount clock throttling and therefore
> >> negate any gains in battery usage.
>
> Aren't you forgetting about CPUfreq governors? Which mean: use the
> maximum CPU frequency when the system is busy, throttle down (or lower
> voltage) when the system is idle.
>
> So yes, throttling will save the battery.

In the relevant documentation "throttling" usually means "the reduction of the
frequency of a CPU that is not idle" in which case it won't (at least on the
average).

> Besides, not all CPUs support power management (voltage control).
>
>
> > IMO clock throttling (as opposed to the reduction of the frequency of an idle
> > CPU) is only useful for preventing the CPU from overheating.
>
> And for reducing power on CPUs that can't do any power management, just
> throttling.
>
> For example, a server that doesn't crunch any numbers at night will
> certainly use less power when throttled.

You can't use less power, you only can use less energy. :-)

Anyway, that's "the reduction of the frequency of an idle CPU" mentioned above
and it makes sense in the majority of cases.

Greetings,
Rafael

2008-01-21 07:48:19

by Daniel Barkalow

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Sun, 20 Jan 2008, Matt Mackall wrote:

> Your usage of "overall power" here is wrong. Power is an instantaneous
> quantity (1/s) like velocity, and you are comparing it to energy which
> is not an instaneous quantity, more like distance.
>
> If we throttle the velocity of a car from 100km/h to 50km/h, it'll
> obviously take longer for it travel a given distance. Now what will it
> mean when we ask about its "overall velocity" when it reaches its
> destination? We surely don't mean the distance travelled - that's not a
> velocity! We can perhaps talk about its average velocity, which will
> obviously be smaller.

What's people tend to care about is average power usage over a period, not
instantaneous power usage. In fact, throttling obviously doesn't decrease
instantaneous power usage while the machine is doing anything (since it
runs full speed and full power when running, and does nothing and uses
some but not as much power when halted). Throttling decreases the average
power usage over the period of the throttling, but increases the average
power usage in general over longer periods.

If we throttle a car's velocity by only driving 100km/h for 5 minutes out
of every 10 instead of all of the time, it doesn't meaningfully have less
velocity. And it's a particularly meaningless measure if the arrangement
as a whole is that it will leave point A at some time, drive to point B,
and sit there until some other time; in this case its average velocity is
the distance from point A to point B divided by the duration between the
two times, regardless of how you drive. But the distance travelled is
longer if you have to pull over and park every 10 minutes, and so the
average velocity must be higher for the TDMA throttling case.

-Daniel
*This .sig left intentionally blank*

2008-01-21 10:25:54

by Matthew Garrett

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

On Sun, Jan 20, 2008 at 11:06:02PM +0100, Tomasz Chmielewski wrote:

> Aren't you forgetting about CPUfreq governors? Which mean: use the
> maximum CPU frequency when the system is busy, throttle down (or lower
> voltage) when the system is idle.
>
> So yes, throttling will save the battery.
>
> Besides, not all CPUs support power management (voltage control).

Voltage scaling isn't the only component of CPU power management. Intels
have supported low power states on idle since the Pentium 90 (Cyrix had
"Suspend on HALT" earlier than that), which means that an idle processor
takes less power than one executing code. On anything even vaguely
modern, throttling will not save you any significant power compared to
the C state support.

> For example, a server that doesn't crunch any numbers at night will
> certainly use less power when throttled.

Have you got benchmark figures for this?
--
Matthew Garrett | [email protected]

2008-01-22 00:00:24

by Robert Hancock

[permalink] [raw]
Subject: Re: PROBLEM: Celeron Core

Tomasz Chmielewski wrote:
>>> Clock throttling is not likely to save your battery, unless you have
>>> tasks that are running at 100% CPU for an unlimited time or
>>> something, and you force your CPU to throttle. Normally most people
>>> have tasks that run and then the CPU idles - loading an email,
>>> displaying a web page, etc. Clock throttling will just make these
>>> tasks utilize the CPU for a longer time proportional to the amount
>>> clock throttling and therefore negate any gains in battery usage.
>
> Aren't you forgetting about CPUfreq governors? Which mean: use the
> maximum CPU frequency when the system is busy, throttle down (or lower
> voltage) when the system is idle.
>
> So yes, throttling will save the battery.

We are talking about throttling (i.e. P4 clockmod) not CPU frequency
scaling. Clock modulation does not reduce the clock speed, it just
basically forces the CPU to halt on a certain duty cycle. If the CPU is
already idle this has no effect and won't save any power.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from [email protected]
Home Page: http://www.roberthancock.com/