2009-03-02 15:14:24

by Denys Fedoryschenko

[permalink] [raw]
Subject: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

Please CC me, i am not on linux-kernel maillist

Hardware: Asus EEE 702,
CPU: Intel Celeron 900 Mhz

On 2.6.28 p4-clockmod available, and i can manage governor, frequency and etc
over cpufrequtils.
On 2.6.29-rc6 (git5 tested also) also shown in dmesg as available, but i
can't change anything.

root # cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to [email protected], please.
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU

There is no noticeable differences in dmesg.
Both have
[ 2.438474] p4-clockmod: P4/Xeon(TM) CPU On-Demand Clock Modulation
available


Here is end of strace on cpufreq-info
lstat64("/sys/devices/system/cpu/cpu0/", {st_mode=S_IFDIR|0755,
st_size=0, ...}) = 0
lstat64("/sys/devices/system/cpu/cpu0/", {st_mode=S_IFDIR|0755,
st_size=0, ...}) = 0
write(1, "analyzing CPU 0:\n"..., 17analyzing CPU 0:
) = 17
stat64("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", 0xbfbce570)
= -1 ENOENT (No such file or directory)
open("/proc/sys/cpu/0/speed", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq", 0xbfbce570)
= -1 ENOENT (No such file or directory)
stat64("/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver", 0xbfbce580) = -1
ENOENT (No such file or directory)
write(1, " no or unknown cpufreq driver is"..., 53 no or unknown cpufreq
driver is active on this CPU
) = 53
stat64("/sys/devices/system/cpu/cpu0/cpufreq/affected_cpus", 0xbfbce460) = -1
ENOENT (No such file or directory)
stat64("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq", 0xbfbce560)
= -1 ENOENT (No such file or directory)
stat64("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies",
0xbfbce460) = -1 ENOENT (No such file or directory)
stat64("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors",
0xbfbce560) = -1 ENOENT (No such file or directory)
stat64("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", 0xbfbce570)
= -1 ENOENT (No such file or directory)

If you need more information, let me know.


2009-03-02 16:07:21

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

On Mon, Mar 02, 2009 at 05:04:59PM +0200, Denys Fedoryschenko wrote:

> On 2.6.29-rc6 (git5 tested also) also shown in dmesg as available, but i
> can't change anything.

That's deliberate. p4-clockmod is for thermal management, not clock
control (since it doesn't actually do any of that)

--
Matthew Garrett | [email protected]

2009-03-02 16:16:22

by Denys Fedoryschenko

[permalink] [raw]
Subject: Re: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

On Monday 02 March 2009 18:06:59 Matthew Garrett wrote:
> On Mon, Mar 02, 2009 at 05:04:59PM +0200, Denys Fedoryschenko wrote:
> > On 2.6.29-rc6 (git5 tested also) also shown in dmesg as available, but i
> > can't change anything.
>
> That's deliberate. p4-clockmod is for thermal management, not clock
> control (since it doesn't actually do any of that)
I know very well it is just throttling, and not real CPU power management.
At the end it does job.

In my case i used it for testing on "virtual" 113 Mhz video encoding to find
out bottleneck on ffmpeg and to compare performance with Blackfin.

In another case it helps me to limit current from battery(i have custom power
supply solution), so battery will lasts longer (on spikes, if it uses full
CPU power at 900 Mhz, voltage dropping (specially on last "drops of battery
life), and protection unit disconnecting laptop. Throttling helping to
prevent this.

Actually i am not asking if it nice or not, just if there is feature which is
not working.

2009-03-02 16:26:46

by Sitsofe Wheeler

[permalink] [raw]
Subject: Re: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

On Mon, Mar 02, 2009 at 06:15:56PM +0200, Denys Fedoryschenko wrote:
> On Monday 02 March 2009 18:06:59 Matthew Garrett wrote:
> > On Mon, Mar 02, 2009 at 05:04:59PM +0200, Denys Fedoryschenko wrote:
> > > On 2.6.29-rc6 (git5 tested also) also shown in dmesg as available, but i
> > > can't change anything.
> >
> > That's deliberate. p4-clockmod is for thermal management, not clock
> > control (since it doesn't actually do any of that)
> I know very well it is just throttling, and not real CPU power management.
> At the end it does job.
>
> In my case i used it for testing on "virtual" 113 Mhz video encoding to find
> out bottleneck on ffmpeg and to compare performance with Blackfin.

If it's just throttling you want can't you do that via
/proc/acpi/processor/CPU<N>/throttling ...

--
Sitsofe | http://sucs.org/~sits/

2009-03-02 16:34:17

by Denys Fedoryschenko

[permalink] [raw]
Subject: Re: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

On Monday 02 March 2009 18:26:21 Sitsofe Wheeler wrote:
> On Mon, Mar 02, 2009 at 06:15:56PM +0200, Denys Fedoryschenko wrote:
> > On Monday 02 March 2009 18:06:59 Matthew Garrett wrote:
> > > On Mon, Mar 02, 2009 at 05:04:59PM +0200, Denys Fedoryschenko wrote:
> > > > On 2.6.29-rc6 (git5 tested also) also shown in dmesg as available,
> > > > but i can't change anything.
> > >
> > > That's deliberate. p4-clockmod is for thermal management, not clock
> > > control (since it doesn't actually do any of that)
> >
> > I know very well it is just throttling, and not real CPU power
> > management. At the end it does job.
> >
> > In my case i used it for testing on "virtual" 113 Mhz video encoding to
> > find out bottleneck on ffmpeg and to compare performance with Blackfin.
>
> If it's just throttling you want can't you do that via
> /proc/acpi/processor/CPU<N>/throttling ...

CPUFreq infrastructure much more powerful.
-d --min <FREQ>
new minimum CPU frequency the governor may select.
-u --max <FREQ>
new maximum CPU frequency the governor may select.
-g --governor <GOV>
new cpufreq governor.

This things you cannot do over inserting values over ACPI. Sure you can
reinvent the wheel, but why?

2009-03-02 17:23:34

by Sitsofe Wheeler

[permalink] [raw]
Subject: Re: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

On Mon, Mar 02, 2009 at 06:33:46PM +0200, Denys Fedoryschenko wrote:
> CPUFreq infrastructure much more powerful.
> -d --min <FREQ>
> new minimum CPU frequency the governor may select.
> -u --max <FREQ>
> new maximum CPU frequency the governor may select.
> -g --governor <GOV>
> new cpufreq governor.
>
> This things you cannot do over inserting values over ACPI. Sure you can
> reinvent the wheel, but why?

I guess I don't understand why you would want scaling if it didn't save
you any power...

--
Sitsofe | http://sucs.org/~sits/

2009-03-02 18:17:58

by Denys Fedoryschenko

[permalink] [raw]
Subject: Re: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

On Monday 02 March 2009 19:23:09 Sitsofe Wheeler wrote:
> On Mon, Mar 02, 2009 at 06:33:46PM +0200, Denys Fedoryschenko wrote:
> > CPUFreq infrastructure much more powerful.
> > -d --min <FREQ>
> > new minimum CPU frequency the governor may select.
> > -u --max <FREQ>
> > new maximum CPU frequency the governor may select.
> > -g --governor <GOV>
> > new cpufreq governor.
> >
> > This things you cannot do over inserting values over ACPI. Sure you can
> > reinvent the wheel, but why?
>
> I guess I don't understand why you would want scaling if it didn't save
> you any power...
If i will limit current in certain limits, rather than using high current, i
will have in result higher efficiency of discharging battery.
The discharge curves for a Lithium Ion cell below show that the effective
capacity of the cell is reduced if the cell is discharged at very high rates
(or conversely increased with low discharge rates). This is called the
capacity offset and the effect is common to most cell chemistries.
If the discharge takes place over a long period of several hours as with some
high rate applications such as electric vehicles, the effective capacity of
the battery can be as much as double the specified capacity at the C rate.
This can be most important when dimensioning an expensive battery for high
power use. The capacity of low power, consumer electronics batteries is
normally specified for discharge at the C rate whereas the SAE uses the
discharge over a period of 20 hours (0.05C) as the standard condition for
measuring the Amphour capacity of automotive batteries. The graph below shows
that the effective capacity of a deep discharge lead acid battery is almost
doubled as the discharge rate is reduced from 1.0C to 0.05C. For discharge
times less than one hour (High C rates) the effective capacity falls off
dramatically.
This means even i need to recode on battery movie (clearly need same amount of
processing power), if i do it with 100% CPU available let's say in 30
minutes, and if i do it with 50% CPU available in 60 minutes, at the end i
should have DIFFERENT amount of remaining battery.

Another example, if i run screensaver i want governor powersave(so some crazy
flash plugin don't dry out battery till i come back) , if i run on battery i
will put conservative and limit frequency range to max 50% of CPU power, so i
can be sure my laptop lasts enough time. This in case battery time matter for
me more than computing power. Sure i will prefer some universal way, so i can
set same rules on Core 2 Duo based laptop, and cheap Celeron. Cpufreq provide
me useful framework for this job, and important SAME API everywhere. Less
efficient on p4-clockmod, and very efficient on true "mobile" processors.

* Many things quoted from http://www.mpoweruk.com/performance.htm

2009-03-02 20:35:04

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.28 - 2.6.29-rc6-git5 regression, p4-clockmod/cpufreq probably

On Monday 02 March 2009, Denys Fedoryschenko wrote:
> On Monday 02 March 2009 19:23:09 Sitsofe Wheeler wrote:
> > On Mon, Mar 02, 2009 at 06:33:46PM +0200, Denys Fedoryschenko wrote:
> > > CPUFreq infrastructure much more powerful.
> > > -d --min <FREQ>
> > > new minimum CPU frequency the governor may select.
> > > -u --max <FREQ>
> > > new maximum CPU frequency the governor may select.
> > > -g --governor <GOV>
> > > new cpufreq governor.
> > >
> > > This things you cannot do over inserting values over ACPI. Sure you can
> > > reinvent the wheel, but why?
> >
> > I guess I don't understand why you would want scaling if it didn't save
> > you any power...
> If i will limit current in certain limits, rather than using high current, i
> will have in result higher efficiency of discharging battery.
> The discharge curves for a Lithium Ion cell below show that the effective
> capacity of the cell is reduced if the cell is discharged at very high rates
> (or conversely increased with low discharge rates). This is called the
> capacity offset and the effect is common to most cell chemistries.
> If the discharge takes place over a long period of several hours as with some
> high rate applications such as electric vehicles, the effective capacity of
> the battery can be as much as double the specified capacity at the C rate.
> This can be most important when dimensioning an expensive battery for high
> power use. The capacity of low power, consumer electronics batteries is
> normally specified for discharge at the C rate whereas the SAE uses the
> discharge over a period of 20 hours (0.05C) as the standard condition for
> measuring the Amphour capacity of automotive batteries. The graph below shows
> that the effective capacity of a deep discharge lead acid battery is almost
> doubled as the discharge rate is reduced from 1.0C to 0.05C. For discharge
> times less than one hour (High C rates) the effective capacity falls off
> dramatically.
> This means even i need to recode on battery movie (clearly need same amount of
> processing power), if i do it with 100% CPU available let's say in 30
> minutes, and if i do it with 50% CPU available in 60 minutes, at the end i
> should have DIFFERENT amount of remaining battery.
>
> Another example, if i run screensaver i want governor powersave(so some crazy
> flash plugin don't dry out battery till i come back) , if i run on battery i
> will put conservative and limit frequency range to max 50% of CPU power, so i
> can be sure my laptop lasts enough time. This in case battery time matter for
> me more than computing power. Sure i will prefer some universal way, so i can
> set same rules on Core 2 Duo based laptop, and cheap Celeron. Cpufreq provide
> me useful framework for this job, and important SAME API everywhere. Less
> efficient on p4-clockmod, and very efficient on true "mobile" processors.
>
> * Many things quoted from http://www.mpoweruk.com/performance.htm

You should have added linux-acpi to the CC list and since the change in
question was very much on purpose, I'm not going to list (at least for now).

Thanks,
Rafael