2008-08-03 10:01:01

by S K

[permalink] [raw]
Subject: cpufreq doesn't seem to work in Intel Q9300

Hi,

I have an Intel Core 2 Quad and running kernel
2.6.25.11-97.fc9.i686. cpufreq doesn't seem to work. The cpufreq
scaling monitor in Gnome says CPU Freq scaling is not supported in my
CPU. The CPU can run at 2.0 and 2.5 GHz but mine always runs at 2.5
GHz in Linux.

So I checked /sys and there is no cpufreq dir in /sys/...

# ls /sys/devices/system/cpu/
cpu0 cpu1 cpu2 cpu3 cpuidle sched_mc_power_savings
# ls /sys/devices/system/cpu/cpuidle/
current_driver current_governor_ro

I have no clue what cpuidle directory is for.

I added cpufreq.debug=7 in kernel boot params and saw the following in
the dmesg:

speedstep-smi: No supported Intel CPU detected.
cpufreq-core: CPU 0: _PPC is 0 - frequency not limited
cpufreq-core: CPU 3: _PPC is 0 - frequency not limited
cpufreq-core: CPU 1: _PPC is 0 - frequency not limited
cpufreq-core: CPU 2: _PPC is 0 - frequency not limited
cpuidle: using governor ladder
cpuidle: using governor menu

I looked at arch/x86/kernel/cpu/cpufreq/speedstep-smi.c and it seems
to detect only Pentium IIIs.

Anyone know what files have the cpufreq code for Intel Core 2?
Does cpufreq support Intel Core 2 Quads? Especially the Q9300? If not,
anything I can do to help?

Thanks,
SK

# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Quad CPU Q9300 @ 2.50GHz
stepping : 7
cpu MHz : 2502.516
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2
ssse3 cx16 xtpr sse4_1 lahf_lm
bogomips : 5015.23
clflush size : 64
<snipped the rest> - shows 3 more similar sections.


2008-08-03 10:31:41

by Alan Jenkins

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

S K wrote:
> Hi,
>
> I have an Intel Core 2 Quad and running kernel
> 2.6.25.11-97.fc9.i686. cpufreq doesn't seem to work. The cpufreq
> scaling monitor in Gnome says CPU Freq scaling is not supported in my
> CPU. The CPU can run at 2.0 and 2.5 GHz but mine always runs at 2.5
> GHz in Linux.
>
> So I checked /sys and there is no cpufreq dir in /sys/...
>
> # ls /sys/devices/system/cpu/
> cpu0 cpu1 cpu2 cpu3 cpuidle sched_mc_power_savings
> # ls /sys/devices/system/cpu/cpuidle/
> current_driver current_governor_ro
>
> I have no clue what cpuidle directory is for.
>
> I added cpufreq.debug=7 in kernel boot params and saw the following in
> the dmesg:
>
> speedstep-smi: No supported Intel CPU detected.
> cpufreq-core: CPU 0: _PPC is 0 - frequency not limited
> cpufreq-core: CPU 3: _PPC is 0 - frequency not limited
> cpufreq-core: CPU 1: _PPC is 0 - frequency not limited
> cpufreq-core: CPU 2: _PPC is 0 - frequency not limited
> cpuidle: using governor ladder
> cpuidle: using governor menu
>
> I looked at arch/x86/kernel/cpu/cpufreq/speedstep-smi.c and it seems
> to detect only Pentium IIIs.
>
> Anyone know what files have the cpufreq code for Intel Core 2?
> Does cpufreq support Intel Core 2 Quads? Especially the Q9300? If not,
> anything I can do to help?

I have an Intel Core 2 Duo and it uses the ACPI cpufreq driver; your
Quad should do the same. So this is likely an ACPI/BIOS issue.

If you ask ACPI people they will ask you to post the output of acpidump.
Also you should probably check if you have a BIOS option that needs to be
enabled for this to work.

BTW, cpuidle is something quite different, it is about how to save power
when CPU is doing nothing (i.e. idle :-). Cpu frequency scaling is how to
save power when CPU is working (but doesn't need to run flat out).

Alan

2008-08-04 05:06:55

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Hi,

I'm attaching the acpidump output. Can someone (ACPI guys??) please
me help figure this out?
Is there any other info that's needed to debug this?

I can be a tester for this and even do some development within the
limits of my understanding.

Thanks,
SK

On Sun, Aug 3, 2008 at 3:31 AM, none <[email protected]> wrote:
> S K wrote:
>> Hi,
>>
>> I have an Intel Core 2 Quad and running kernel
>> 2.6.25.11-97.fc9.i686. cpufreq doesn't seem to work. The cpufreq
>> scaling monitor in Gnome says CPU Freq scaling is not supported in my
>> CPU. The CPU can run at 2.0 and 2.5 GHz but mine always runs at 2.5
>> GHz in Linux.
>>
>> So I checked /sys and there is no cpufreq dir in /sys/...
>>
>> # ls /sys/devices/system/cpu/
>> cpu0 cpu1 cpu2 cpu3 cpuidle sched_mc_power_savings
>> # ls /sys/devices/system/cpu/cpuidle/
>> current_driver current_governor_ro
>>
>> I have no clue what cpuidle directory is for.
>>
>> I added cpufreq.debug=7 in kernel boot params and saw the following in
>> the dmesg:
>>
>> speedstep-smi: No supported Intel CPU detected.
>> cpufreq-core: CPU 0: _PPC is 0 - frequency not limited
>> cpufreq-core: CPU 3: _PPC is 0 - frequency not limited
>> cpufreq-core: CPU 1: _PPC is 0 - frequency not limited
>> cpufreq-core: CPU 2: _PPC is 0 - frequency not limited
>> cpuidle: using governor ladder
>> cpuidle: using governor menu
>>
>> I looked at arch/x86/kernel/cpu/cpufreq/speedstep-smi.c and it seems
>> to detect only Pentium IIIs.
>>
>> Anyone know what files have the cpufreq code for Intel Core 2?
>> Does cpufreq support Intel Core 2 Quads? Especially the Q9300? If not,
>> anything I can do to help?
>
> I have an Intel Core 2 Duo and it uses the ACPI cpufreq driver; your
> Quad should do the same. So this is likely an ACPI/BIOS issue.
>
> If you ask ACPI people they will ask you to post the output of acpidump.
> Also you should probably check if you have a BIOS option that needs to be
> enabled for this to work.
>
> BTW, cpuidle is something quite different, it is about how to save power
> when CPU is doing nothing (i.e. idle :-). Cpu frequency scaling is how to
> save power when CPU is working (but doesn't need to run flat out).
>
> Alan
>


Attachments:
(No filename) (2.16 kB)
acpidump.txt (92.96 kB)
Download all attachments

2008-08-07 12:24:57

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Anyone care to help?

-SK

2008/8/3 S K <[email protected]>:
> Hi,
>
> I'm attaching the acpidump output. Can someone (ACPI guys??) please
> me help figure this out?
> Is there any other info that's needed to debug this?
>
> I can be a tester for this and even do some development within the
> limits of my understanding.
>
> Thanks,
> SK
>
> On Sun, Aug 3, 2008 at 3:31 AM, none <[email protected]> wrote:
>> S K wrote:
>>> Hi,
>>>
>>> I have an Intel Core 2 Quad and running kernel
>>> 2.6.25.11-97.fc9.i686. cpufreq doesn't seem to work. The cpufreq
>>> scaling monitor in Gnome says CPU Freq scaling is not supported in my
>>> CPU. The CPU can run at 2.0 and 2.5 GHz but mine always runs at 2.5
>>> GHz in Linux.
>>>
>>> So I checked /sys and there is no cpufreq dir in /sys/...
>>>
>>> # ls /sys/devices/system/cpu/
>>> cpu0 cpu1 cpu2 cpu3 cpuidle sched_mc_power_savings
>>> # ls /sys/devices/system/cpu/cpuidle/
>>> current_driver current_governor_ro
>>>
>>> I have no clue what cpuidle directory is for.
>>>
>>> I added cpufreq.debug=7 in kernel boot params and saw the following in
>>> the dmesg:
>>>
>>> speedstep-smi: No supported Intel CPU detected.
>>> cpufreq-core: CPU 0: _PPC is 0 - frequency not limited
>>> cpufreq-core: CPU 3: _PPC is 0 - frequency not limited
>>> cpufreq-core: CPU 1: _PPC is 0 - frequency not limited
>>> cpufreq-core: CPU 2: _PPC is 0 - frequency not limited
>>> cpuidle: using governor ladder
>>> cpuidle: using governor menu
>>>
>>> I looked at arch/x86/kernel/cpu/cpufreq/speedstep-smi.c and it seems
>>> to detect only Pentium IIIs.
>>>
>>> Anyone know what files have the cpufreq code for Intel Core 2?
>>> Does cpufreq support Intel Core 2 Quads? Especially the Q9300? If not,
>>> anything I can do to help?
>>
>> I have an Intel Core 2 Duo and it uses the ACPI cpufreq driver; your
>> Quad should do the same. So this is likely an ACPI/BIOS issue.
>>
>> If you ask ACPI people they will ask you to post the output of acpidump.
>> Also you should probably check if you have a BIOS option that needs to be
>> enabled for this to work.
>>
>> BTW, cpuidle is something quite different, it is about how to save power
>> when CPU is doing nothing (i.e. idle :-). Cpu frequency scaling is how to
>> save power when CPU is working (but doesn't need to run flat out).
>>
>> Alan
>>
>

2008-08-08 01:18:36

by Zhao, Yakui

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Thu, 2008-08-07 at 02:35 -0700, S K wrote:
> Anyone care to help?
>
Will you please confirm whether the acpi_cpufreq driver is used on your
machine?
Please enable CONFIG_CPUFREQ_DEBUG in kernel configuration and boot the
system with "cpufreq.debug=7".
After the system is booted, please attach the output of dmesg.

please attach the output of acpidump using the latest pmtools at
http://www.lesswatts.org/patches/linux_acpi/

Of course you can open a new bug in bugzilla and attach the output of
dmesg, acpidump, lspci -vxxx.

http://bugzilla.kernel.org/enter_bug.cgi?product=ACPI

Thanks.
> -SK
>
> 2008/8/3 S K <[email protected]>:
> > Hi,
> >
> > I'm attaching the acpidump output. Can someone (ACPI guys??) please
> > me help figure this out?
> > Is there any other info that's needed to debug this?
> >
> > I can be a tester for this and even do some development within the
> > limits of my understanding.
> >
> > Thanks,
> > SK
> >
> > On Sun, Aug 3, 2008 at 3:31 AM, none <[email protected]> wrote:
> >> S K wrote:
> >>> Hi,
> >>>
> >>> I have an Intel Core 2 Quad and running kernel
> >>> 2.6.25.11-97.fc9.i686. cpufreq doesn't seem to work. The cpufreq
> >>> scaling monitor in Gnome says CPU Freq scaling is not supported in my
> >>> CPU. The CPU can run at 2.0 and 2.5 GHz but mine always runs at 2.5
> >>> GHz in Linux.
> >>>
> >>> So I checked /sys and there is no cpufreq dir in /sys/...
> >>>
> >>> # ls /sys/devices/system/cpu/
> >>> cpu0 cpu1 cpu2 cpu3 cpuidle sched_mc_power_savings
> >>> # ls /sys/devices/system/cpu/cpuidle/
> >>> current_driver current_governor_ro
> >>>
> >>> I have no clue what cpuidle directory is for.
> >>>
> >>> I added cpufreq.debug=7 in kernel boot params and saw the following in
> >>> the dmesg:
> >>>
> >>> speedstep-smi: No supported Intel CPU detected.
> >>> cpufreq-core: CPU 0: _PPC is 0 - frequency not limited
> >>> cpufreq-core: CPU 3: _PPC is 0 - frequency not limited
> >>> cpufreq-core: CPU 1: _PPC is 0 - frequency not limited
> >>> cpufreq-core: CPU 2: _PPC is 0 - frequency not limited
> >>> cpuidle: using governor ladder
> >>> cpuidle: using governor menu
> >>>
> >>> I looked at arch/x86/kernel/cpu/cpufreq/speedstep-smi.c and it seems
> >>> to detect only Pentium IIIs.
> >>>
> >>> Anyone know what files have the cpufreq code for Intel Core 2?
> >>> Does cpufreq support Intel Core 2 Quads? Especially the Q9300? If not,
> >>> anything I can do to help?
> >>
> >> I have an Intel Core 2 Duo and it uses the ACPI cpufreq driver; your
> >> Quad should do the same. So this is likely an ACPI/BIOS issue.
> >>
> >> If you ask ACPI people they will ask you to post the output of acpidump.
> >> Also you should probably check if you have a BIOS option that needs to be
> >> enabled for this to work.
> >>
> >> BTW, cpuidle is something quite different, it is about how to save power
> >> when CPU is doing nothing (i.e. idle :-). Cpu frequency scaling is how to
> >> save power when CPU is working (but doesn't need to run flat out).
> >>
> >> Alan
> >>
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2008-08-08 04:53:20

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Hi,

I already did the cpufreq.debug thing and it was using the
smi_speedstep driver instread of the acpi_speedstep (or whatever is
the right name).

Alan already told me this is likely an ACPI issue. So, I already sent
the acpidump in a prev email (Aug 3rd 08). I'm don't have access to my
home machine right now. Will send it again later if you can't get my
prev email from the archives.

Is lspci output needed for this?

Thanks,
SK

On 8/7/08, Zhao Yakui <[email protected]> wrote:
> On Thu, 2008-08-07 at 02:35 -0700, S K wrote:
> > Anyone care to help?
> >
> Will you please confirm whether the acpi_cpufreq driver is used on your
> machine?
> Please enable CONFIG_CPUFREQ_DEBUG in kernel configuration and boot the
> system with "cpufreq.debug=7".
> After the system is booted, please attach the output of dmesg.
>
> please attach the output of acpidump using the latest pmtools at
> http://www.lesswatts.org/patches/linux_acpi/
>
> Of course you can open a new bug in bugzilla and attach the output of
> dmesg, acpidump, lspci -vxxx.
>
> http://bugzilla.kernel.org/enter_bug.cgi?product=ACPI
>
> Thanks.
>
> > -SK
> >
> > 2008/8/3 S K <[email protected]>:
> > > Hi,
> > >
> > > I'm attaching the acpidump output. Can someone (ACPI guys??) please
> > > me help figure this out?
> > > Is there any other info that's needed to debug this?
> > >
> > > I can be a tester for this and even do some development within the
> > > limits of my understanding.
> > >
> > > Thanks,
> > > SK
> > >
> > > On Sun, Aug 3, 2008 at 3:31 AM, none <[email protected]> wrote:
> > >> S K wrote:
> > >>> Hi,
> > >>>
> > >>> I have an Intel Core 2 Quad and running kernel
> > >>> 2.6.25.11-97.fc9.i686. cpufreq doesn't seem to work. The cpufreq
> > >>> scaling monitor in Gnome says CPU Freq scaling is not supported in my
> > >>> CPU. The CPU can run at 2.0 and 2.5 GHz but mine always runs at 2.5
> > >>> GHz in Linux.
> > >>>
> > >>> So I checked /sys and there is no cpufreq dir in /sys/...
> > >>>
> > >>> # ls /sys/devices/system/cpu/
> > >>> cpu0 cpu1 cpu2 cpu3 cpuidle sched_mc_power_savings
> > >>> # ls /sys/devices/system/cpu/cpuidle/
> > >>> current_driver current_governor_ro
> > >>>
> > >>> I have no clue what cpuidle directory is for.
> > >>>
> > >>> I added cpufreq.debug=7 in kernel boot params and saw the following in
> > >>> the dmesg:
> > >>>
> > >>> speedstep-smi: No supported Intel CPU detected.
> > >>> cpufreq-core: CPU 0: _PPC is 0 - frequency not limited
> > >>> cpufreq-core: CPU 3: _PPC is 0 - frequency not limited
> > >>> cpufreq-core: CPU 1: _PPC is 0 - frequency not limited
> > >>> cpufreq-core: CPU 2: _PPC is 0 - frequency not limited
> > >>> cpuidle: using governor ladder
> > >>> cpuidle: using governor menu
> > >>>
> > >>> I looked at arch/x86/kernel/cpu/cpufreq/speedstep-smi.c and it seems
> > >>> to detect only Pentium IIIs.
> > >>>
> > >>> Anyone know what files have the cpufreq code for Intel Core 2?
> > >>> Does cpufreq support Intel Core 2 Quads? Especially the Q9300? If not,
> > >>> anything I can do to help?
> > >>
> > >> I have an Intel Core 2 Duo and it uses the ACPI cpufreq driver; your
> > >> Quad should do the same. So this is likely an ACPI/BIOS issue.
> > >>
> > >> If you ask ACPI people they will ask you to post the output of acpidump.
> > >> Also you should probably check if you have a BIOS option that needs to be
> > >> enabled for this to work.
> > >>
> > >> BTW, cpuidle is something quite different, it is about how to save power
> > >> when CPU is doing nothing (i.e. idle :-). Cpu frequency scaling is how to
> > >> save power when CPU is working (but doesn't need to run flat out).
> > >>
> > >> Alan
> > >>
> > >
>
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>

2008-08-08 07:30:22

by Alan Jenkins

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

S K wrote:
> 2008/8/3 S K <[email protected]>:
>> On Sun, Aug 3, 2008 at 3:31 AM, none <[email protected]> wrote:
>>> S K wrote:
>>>> Hi,
>>>>
>>>> I have an Intel Core 2 Quad and running kernel
>>>> 2.6.25.11-97.fc9.i686. cpufreq doesn't seem to work. The cpufreq
>>>> scaling monitor in Gnome says CPU Freq scaling is not supported in my
>>>> CPU. The CPU can run at 2.0 and 2.5 GHz but mine always runs at 2.5
>>>> GHz in Linux.
>>>>
>>>> So I checked /sys and there is no cpufreq dir in /sys/...
>>>>
>>>> # ls /sys/devices/system/cpu/
>>>> cpu0 cpu1 cpu2 cpu3 cpuidle sched_mc_power_savings
>>>> # ls /sys/devices/system/cpu/cpuidle/
>>>> current_driver current_governor_ro
>>>>
>>>> I have no clue what cpuidle directory is for.
>>>>
>>>> I added cpufreq.debug=7 in kernel boot params and saw the following in
>>>> the dmesg:
>>>>
>>>> speedstep-smi: No supported Intel CPU detected.
>>>> cpufreq-core: CPU 0: _PPC is 0 - frequency not limited
>>>> cpufreq-core: CPU 3: _PPC is 0 - frequency not limited
>>>> cpufreq-core: CPU 1: _PPC is 0 - frequency not limited
>>>> cpufreq-core: CPU 2: _PPC is 0 - frequency not limited
>>>> cpuidle: using governor ladder
>>>> cpuidle: using governor menu
>>>>
>>>> I looked at arch/x86/kernel/cpu/cpufreq/speedstep-smi.c and it seems
>>>> to detect only Pentium IIIs.
>>>>
>>>> Anyone know what files have the cpufreq code for Intel Core 2?
>>>> Does cpufreq support Intel Core 2 Quads? Especially the Q9300? If not,
>>>> anything I can do to help?
>>> I have an Intel Core 2 Duo and it uses the ACPI cpufreq driver; your
>>> Quad should do the same. So this is likely an ACPI/BIOS issue.
>>>
>>> If you ask ACPI people they will ask you to post the output of acpidump.
>>> Also you should probably check if you have a BIOS option that needs to be
>>> enabled for this to work.
>>>
>>> BTW, cpuidle is something quite different, it is about how to save power
>>> when CPU is doing nothing (i.e. idle :-). Cpu frequency scaling is how to
>>> save power when CPU is working (but doesn't need to run flat out).
>>>
>>> Alan
>>>
>> Hi,
>>
>> I'm attaching the acpidump output. Can someone (ACPI guys??) please
>> me help figure this out?
>> Is there any other info that's needed to debug this?
>>
>> I can be a tester for this and even do some development within the
>> limits of my understanding.
>>
>> Thanks,
>> SK
>>
> Anyone care to help?
>
> -SK

Please don't top-post!

According to the online ACPI spec, the BIOS should expose _PCT, _PSS and PPC objects if it supports multiple CPU performance states (aka P-states, cpufreq). I ran your acpidump.txt through acpixtract to generate the DSDT, and decompiled it using iasl. It did not contain any of _PCT, _PSS and _PPC.

Again, it is possible this is an option in your BIOS which is currently disabled. You need to go into your BIOS setup screen and see if you can find any relevant options.

If possible, find out whether cpu frequency scaling works in windows. If it doesn't work in windows, it's very unlikely to work on linux. Linux ACPI aims for bug-for-bug compatibility with Windows, which is what manufacturers test their product against.

There may be other possibilities. Your acpidump output did not appear to include a SSDT, which is another place these objects might be found. My computer suffered from a bug where linux could not find the SSDT (<http://bugzilla.kernel.org/show_bug.cgi?id=8630>). This bug was relatively simple and was fixed. However there might be something similar going on. IIRC from last time, SSDTs or similar can also be loaded dynamically by the AML code in the DSDT, so maybe something goes wrong there.

Regards
Alan

2008-08-08 08:41:49

by Alan Jenkins

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

S K wrote:
> Hi,
>
> I already did the cpufreq.debug thing and it was using the
> smi_speedstep driver instread of the acpi_speedstep (or whatever is
> the right name).
>
> Alan already told me this is likely an ACPI issue. So, I already sent
> the acpidump in a prev email (Aug 3rd 08). I'm don't have access to my
> home machine right now. Will send it again later if you can't get my
> prev email from the archives.
>

I could be completely wrong though!

I'd not heard of speedstep_smi before (now I look, it doesn't seem to be
an option in the cpu frequency scaling Kconfig menu?).

I assumed the error messages you had about SMI were just flack. I
thought acpi-cpufreq was the only option on recent machines - and that
a quad core probably counts as recent. The error messages could be due
to Fedora scripts unconditionally loading several different modules, to
find one that works.

I'm not sure how you can answer Zhao's question if you don't already
know. I expect Fedora C7 does try loading acpi_cpufreq (as well as
speedstep_smi). Whether your machine actually supports acpi_cpufreq is
the question we're trying to answer. (This is where looking at Windows,
or BIOS settings, would help).

Alan

2008-08-08 10:10:55

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Fri, Aug 8, 2008 at 1:41 AM, Alan Jenkins
<[email protected]> wrote:
> S K wrote:
>> Hi,
>>
>> I already did the cpufreq.debug thing and it was using the
>> smi_speedstep driver instread of the acpi_speedstep (or whatever is
>> the right name).
>>
>> Alan already told me this is likely an ACPI issue. So, I already sent
>> the acpidump in a prev email (Aug 3rd 08). I'm don't have access to my
>> home machine right now. Will send it again later if you can't get my
>> prev email from the archives.
>>
>
> I could be completely wrong though!
>
> I'd not heard of speedstep_smi before (now I look, it doesn't seem to be
> an option in the cpu frequency scaling Kconfig menu?).
>
> I assumed the error messages you had about SMI were just flack. I
> thought acpi-cpufreq was the only option on recent machines - and that
> a quad core probably counts as recent. The error messages could be due
> to Fedora scripts unconditionally loading several different modules, to
> find one that works.
>
> I'm not sure how you can answer Zhao's question if you don't already
> know. I expect Fedora C7 does try loading acpi_cpufreq (as well as
> speedstep_smi). Whether your machine actually supports acpi_cpufreq is
> the question we're trying to answer. (This is where looking at Windows,
> or BIOS settings, would help).
>
> Alan
>

My machine has acpi-cpufreq module, but when I try to load it, I get:
FATAL: Error inserting acpi_cpufreq
(/lib/modules/2.6.25.11-97.fc9.i686/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko):
No such device

Btw, yes, cpu freq scaling works in Windows XP. What should I look for
in Windows?

I build my own system, so I have gone through my system BIOS several
times and don't remember anything related to freq scaling. But I will
check again.

Btw, my machine is a Shuttle SG33G5. It has other issues too but right
now heat is the biggest concern.

Thanks,
SK

2008-08-08 10:43:27

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On 8/8/08, S K <[email protected]> wrote:
>
> My machine has acpi-cpufreq module, but when I try to load it, I get:
> FATAL: Error inserting acpi_cpufreq
> (/lib/modules/2.6.25.11-97.fc9.i686/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko):
> No such device
>
> Btw, yes, cpu freq scaling works in Windows XP. What should I look for
> in Windows?
>
> I build my own system, so I have gone through my system BIOS several
> times and don't remember anything related to freq scaling. But I will
> check again.

There is a "PPM mode" option which has possible values:
Native - Native mode is for fully support ACPI OS (ex. Win XP, Vista)
SMM - SMM mode is for legacy OS (ex. Win 2k)

Setting it to SMM didn't help. Gave the same error for acpi_cpufreq.

Btw, you were right about FC trying all the module, but it apparently
tried only speedstep modules for some reason. It's clear from my
dmesg.txt that all the speedstep modules are attempted.

Forgot one obvious thing when I ran dmesg -- forgot to run it after
trying modprobe acpi_cpufreq.
This is what I get when I do that:

acpi-cpufreq: acpi_cpufreq_init
acpi-cpufreq: acpi_cpufreq_early_init
cpufreq-core: trying to register driver acpi-cpufreq
cpufreq-core: adding CPU 0
acpi-cpufreq: acpi_cpufreq_cpu_init
cpufreq-core: initialization failed
cpufreq-core: adding CPU 1
acpi-cpufreq: acpi_cpufreq_cpu_init
cpufreq-core: initialization failed
cpufreq-core: adding CPU 2
acpi-cpufreq: acpi_cpufreq_cpu_init
cpufreq-core: initialization failed
cpufreq-core: adding CPU 3
acpi-cpufreq: acpi_cpufreq_cpu_init
cpufreq-core: initialization failed
cpufreq-core: no CPU initialized for driver acpi-cpufreq
cpufreq-core: unregistering CPU 0
cpufreq-core: unregistering CPU 1
cpufreq-core: unregistering CPU 2
cpufreq-core: unregistering CPU 3

Attaching the files I sent to Zaho so others can look at it too.

Thanks,
SK

2008-08-08 12:30:55

by Thomas Renninger

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Friday 08 August 2008 12:43:02 S K wrote:
> On 8/8/08, S K <[email protected]> wrote:
> > My machine has acpi-cpufreq module, but when I try to load it, I get:
> > FATAL: Error inserting acpi_cpufreq
> >
> > (/lib/modules/2.6.25.11-97.fc9.i686/kernel/arch/x86/kernel/cpu/cpufreq/ac
> >pi-cpufreq.ko): No such device
> >
> > Btw, yes, cpu freq scaling works in Windows XP. What should I look for
> > in Windows?
> >
> > I build my own system, so I have gone through my system BIOS several
> > times and don't remember anything related to freq scaling. But I will
> > check again.
>
> There is a "PPM mode" option which has possible values:
> Native - Native mode is for fully support ACPI OS (ex. Win XP, Vista)
> SMM - SMM mode is for legacy OS (ex. Win 2k)
>
> Setting it to SMM didn't help. Gave the same error for acpi_cpufreq.
>
> Btw, you were right about FC trying all the module, but it apparently
> tried only speedstep modules for some reason. It's clear from my
> dmesg.txt that all the speedstep modules are attempted.
>
> Forgot one obvious thing when I ran dmesg -- forgot to run it after
> trying modprobe acpi_cpufreq.
> This is what I get when I do that:
>
> acpi-cpufreq: acpi_cpufreq_init
> acpi-cpufreq: acpi_cpufreq_early_init
> cpufreq-core: trying to register driver acpi-cpufreq
> cpufreq-core: adding CPU 0
> acpi-cpufreq: acpi_cpufreq_cpu_init
> cpufreq-core: initialization failed
> cpufreq-core: adding CPU 1
> acpi-cpufreq: acpi_cpufreq_cpu_init
> cpufreq-core: initialization failed
> cpufreq-core: adding CPU 2
> acpi-cpufreq: acpi_cpufreq_cpu_init
> cpufreq-core: initialization failed
> cpufreq-core: adding CPU 3
> acpi-cpufreq: acpi_cpufreq_cpu_init
> cpufreq-core: initialization failed
> cpufreq-core: no CPU initialized for driver acpi-cpufreq
> cpufreq-core: unregistering CPU 0
> cpufreq-core: unregistering CPU 1
> cpufreq-core: unregistering CPU 2
> cpufreq-core: unregistering CPU 3
>
> Attaching the files I sent to Zaho so others can look at it too.

Try updating the BIOS.
I expect your CPU is too new and the BIOS cannot export the correct freq
values for the specific CPU yet.

Thomas

2008-08-08 18:23:37

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

>
> Try updating the BIOS.
> I expect your CPU is too new and the BIOS cannot export the correct freq
> values for the specific CPU yet.
>
> Thomas
>

The BIOS is already at the latest version :( Is the above comment the
only possible reason for the issue?

-SK
P.S: Thoman, I initially replied only to you. Sorry for the double email.

2008-08-09 18:43:37

by Thomas Renninger

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Friday 08 August 2008 08:23:25 pm S K wrote:
> > Try updating the BIOS.
> > I expect your CPU is too new and the BIOS cannot export the correct freq
> > values for the specific CPU yet.
> >
> > Thomas
>
> The BIOS is already at the latest version :( Is the above comment the
> only possible reason for the issue?

It is very likely.
I did not go through the DSDT table(s) myself, but if this is true:
> According to the online ACPI spec, the BIOS should expose _PCT, _PSS and PPC
> objects if it supports multiple CPU performance states (aka P-states,
> cpufreq). ?I ran your acpidump.txt through acpixtract to generate the DSDT,
> and decompiled it using iasl. ?It did not contain any of _PCT, _PSS and
> _PPC.

your BIOS does not export basic CPU freq data. The only way to get cpufreq
working on latest Intel HW is through ACPI and acpi-cpufreq driver.

It may happen that above functions are somewhat hidden in SSDT tables but
loading and finding the CPU freq functions generally works quite well.

Mark Langsdorf reported some acpi breakage in .27-rc1, this could also be the
reason.

That a BIOS update is needed for latest CPUs is common. I expect your machine
is rather new?

There also is a cpufreq list which moved recently, the latest one you should
post to is this one:
[email protected]

Thomas

2008-08-09 19:14:10

by Thomas Renninger

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Hi,

just that in case you try out kernels...

On Saturday 09 August 2008 08:59:47 pm Thomas Renninger wrote:
> On Friday 08 August 2008 08:23:25 pm S K wrote:

> Mark Langsdorf reported some acpi breakage in .27-rc1, this could also be
> the reason.
---------
> I got a regression when updated from 2.6.27-rc1 ro
> 2.6.27-rc2. ?The noticeable symptom is the powernow-k8
> driver stopped working because the call to
> acpi_processor_register_performance() is returning
> -EINVAL.
----------

So it's rc2 not rc1, but AFAIK your report should be older than rc2.

There also was a similar report from Laurence Darby <[email protected]>.
He still posted on the old cpufreq list.
Subject: Core 2 Duo E8400 stepping 6 not recognised

A BIOS update helped.
You may be able to google this out and compare his CPU_FREQ_DEBUG logs.

Thomas

2008-08-10 08:28:20

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Sat, Aug 9, 2008 at 11:59 AM, Thomas Renninger <[email protected]> wrote:
> On Friday 08 August 2008 08:23:25 pm S K wrote:
>> > Try updating the BIOS.
>> > I expect your CPU is too new and the BIOS cannot export the correct freq
>> > values for the specific CPU yet.
>> >
>> > Thomas
>>
>> The BIOS is already at the latest version :( Is the above comment the
>> only possible reason for the issue?
>
> It is very likely.

But Windows XP is able to do the scaling properly. So how can it be a
BIOS issue? While reading about the Foxconn BIOS fiasco that happened
recently a kernel dev (forgot his name) stated that Linux tries to
emulate Windows for ACPI operations.

So I'm guessing this is a kernel bug.

-SK

2008-08-11 01:20:12

by Zhao, Yakui

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Sun, 2008-08-10 at 01:28 -0700, S K wrote:
> On Sat, Aug 9, 2008 at 11:59 AM, Thomas Renninger <[email protected]> wrote:
> > On Friday 08 August 2008 08:23:25 pm S K wrote:
> >> > Try updating the BIOS.
> >> > I expect your CPU is too new and the BIOS cannot export the correct freq
> >> > values for the specific CPU yet.
> >> >
> >> > Thomas
> >>
> >> The BIOS is already at the latest version :( Is the above comment the
> >> only possible reason for the issue?
> >
> > It is very likely.
>
> But Windows XP is able to do the scaling properly. So how can it be a
> BIOS issue? While reading about the Foxconn BIOS fiasco that happened
> recently a kernel dev (forgot his name) stated that Linux tries to
> emulate Windows for ACPI operations.
>
> So I'm guessing this is a kernel bug.
>From the attached acpidump it seems that there is no definition of
_PCT,_PSS, _PPC. So acpi_cpufreq driver can't be used on your machine.
This is a BIOS issue.

But it is very strange that cpufreq scaling can work on Windows XP.
Will you please try the P4 clock cpufreq driver and see whether the
scaling can work ? In fact P4 clock cpufreq driver is already replaced
by acpi_cpufreq driver for the latest cpu.
Anyway please try p4 clock cpufreq driver.

Thanks.

>
> -SK

2008-08-11 04:45:01

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

>> So I'm guessing this is a kernel bug.
> >From the attached acpidump it seems that there is no definition of
> _PCT,_PSS, _PPC. So acpi_cpufreq driver can't be used on your machine.
> This is a BIOS issue.

Yakui, Did you actually check if the above was true?

>
> But it is very strange that cpufreq scaling can work on Windows XP.
> Will you please try the P4 clock cpufreq driver and see whether the
> scaling can work ? In fact P4 clock cpufreq driver is already replaced
> by acpi_cpufreq driver for the latest cpu.
> Anyway please try p4 clock cpufreq driver.

What is the name of the driver? I'm not able to find any such driver
in Fedora 9 installed modules. There is only acpi-cpufreq and powernow-k8.

Also, If someone doesn't mind, can they tell me what all files I need to
replace in Fedora 9 once I get a kernel.org kernel compiled? I know
how to edit grub.conf,
and that I should replace vmlinuz, but do I need to replace initrd too?

Thanks,
SK

2008-08-11 05:10:49

by Zhao, Yakui

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Sun, 2008-08-10 at 21:44 -0700, S K wrote:
> >> So I'm guessing this is a kernel bug.
> > >From the attached acpidump it seems that there is no definition of
> > _PCT,_PSS, _PPC. So acpi_cpufreq driver can't be used on your machine.
> > This is a BIOS issue.
>
> Yakui, Did you actually check if the above was true?
Yes. There is no definition of _PSS,_PCT,_PPC in DSDT table, which are
required by acpi_cpufreq driver.At the same time there is no extra SSDT
table.

> >
> > But it is very strange that cpufreq scaling can work on Windows XP.
> > Will you please try the P4 clock cpufreq driver and see whether the
> > scaling can work ? In fact P4 clock cpufreq driver is already replaced
> > by acpi_cpufreq driver for the latest cpu.
> > Anyway please try p4 clock cpufreq driver.
>
> What is the name of the driver? I'm not able to find any such driver
> in Fedora 9 installed modules. There is only acpi-cpufreq and powernow-k8.
The driver is P4-clockmod, which is located in the directory of
arch/x86/kernel/cpu/cpufreq
>
> Also, If someone doesn't mind, can they tell me what all files I need to
> replace in Fedora 9 once I get a kernel.org kernel compiled? I know
> how to edit grub.conf,
> and that I should replace vmlinuz, but do I need to replace initrd too?
Maybe you should enable "CONFIG_X86_P4_CLOCKMOD" in kernel configuration
and compile a new kernel.
thanks.
>
> Thanks,
> SK

2008-08-11 05:24:29

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

>> Yakui, Did you actually check if the above was true?
> Yes. There is no definition of _PSS,_PCT,_PPC in DSDT table, which are
> required by acpi_cpufreq driver.At the same time there is no extra SSDT
> table.

So what's the significance of "no extra SSDT table"? Does that mean that XP
and Linux are using the same tables to check for freq scaling support?

> The driver is P4-clockmod, which is located in the directory of
> arch/x86/kernel/cpu/cpufreq

Thanks. I just looked at the kernel.org kernel (what's the term used
in lkml for this?) and found out the switch.
I got the kernel.org kernel compiled with the .config used for the F9
kernel. Now I need figure out how to get it to boot.

Btw, on your suggestion, I opened a bug for this issue.
http://bugzilla.kernel.org/show_bug.cgi?id=11299

Does the LKML community consider the Fedora 9 kernels as too different?
I would prefer using the F9 kernel for testing this issue since it's
easier for me to compile and install.

I got some important stuff to deal with for the next couple of days.
So I will get back on this thread in 2-4 days.

Thanks,
SK

2008-08-11 07:20:51

by Alan

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

> Does the LKML community consider the Fedora 9 kernels as too different?
> I would prefer using the F9 kernel for testing this issue since it's
> easier for me to compile and install.

The F9 kernels are very very close to the linux-kernel ones.

See

http://docs.fedoraproject.org/release-notes/f9/en_US/sn-Kernel.html
http://fedoraproject.org/wiki/Docs/CustomKernel
http://www.howtoforge.com/kernel_compilation_fedora

2008-08-11 10:55:31

by Andi Kleen

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Zhao Yakui <[email protected]> writes:

> On Sun, 2008-08-10 at 21:44 -0700, S K wrote:
>> >> So I'm guessing this is a kernel bug.
>> > >From the attached acpidump it seems that there is no definition of
>> > _PCT,_PSS, _PPC. So acpi_cpufreq driver can't be used on your machine.
>> > This is a BIOS issue.
>>
>> Yakui, Did you actually check if the above was true?
> Yes. There is no definition of _PSS,_PCT,_PPC in DSDT table, which are
> required by acpi_cpufreq driver.At the same time there is no extra SSDT
> table.

It sounds like the BIOS just doesn't support frequency scaling.
Perhaps it's disabled in the BIOS setup. Or the system doesn't
support it at all.

If he can't find an option to enable it there he'll have to update it
and if there is no update he's out of luck.

I don't think Linux should be blamed for it.

>
>> >
>> > But it is very strange that cpufreq scaling can work on Windows XP.
>> > Will you please try the P4 clock cpufreq driver and see whether the
>> > scaling can work ? In fact P4 clock cpufreq driver is already replaced
>> > by acpi_cpufreq driver for the latest cpu.
>> > Anyway please try p4 clock cpufreq driver.
>>
>> What is the name of the driver? I'm not able to find any such driver
>> in Fedora 9 installed modules. There is only acpi-cpufreq and powernow-k8.
> The driver is P4-clockmod, which is located in the directory of
> arch/x86/kernel/cpu/cpufreq

Using p4 clockmod doesn't make sense because it doesn't really
safe any power and is often very slow.

-Andi
>>

2008-08-11 11:22:51

by Arjan van de Ven

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Sun, 10 Aug 2008 21:44:50 -0700
"S K" <[email protected]> wrote:


> >
> > But it is very strange that cpufreq scaling can work on Windows XP.
> > Will you please try the P4 clock cpufreq driver and see whether the
> > scaling can work ? In fact P4 clock cpufreq driver is already
> > replaced by acpi_cpufreq driver for the latest cpu.
> > Anyway please try p4 clock cpufreq driver.
>
> What is the name of the driver? I'm not able to find any such driver
> in Fedora 9 installed modules. There is only acpi-cpufreq and
> powernow-k8.
>

yeah don't bother with p4-clockmod, it's not something that saves you
energy... it only gives you a fake feeling that you would.

--
If you want to reach me at my work email, use [email protected]
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2008-08-11 11:38:38

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 04:22:44AM -0700, Arjan van de Ven wrote:
> On Sun, 10 Aug 2008 21:44:50 -0700
> "S K" <[email protected]> wrote:
> > > But it is very strange that cpufreq scaling can work on Windows XP.
> > > Will you please try the P4 clock cpufreq driver and see whether the
> > > scaling can work ? In fact P4 clock cpufreq driver is already
> > > replaced by acpi_cpufreq driver for the latest cpu.
> > > Anyway please try p4 clock cpufreq driver.
> >
> > What is the name of the driver? I'm not able to find any such driver
> > in Fedora 9 installed modules. There is only acpi-cpufreq and
> > powernow-k8.
> >
>
> yeah don't bother with p4-clockmod, it's not something that saves you
> energy... it only gives you a fake feeling that you would.

Why it is still in tree?

It's likely that you'll waste more time explaining everybody to not use
p4-clockmod than send a patch.

2008-08-11 11:54:14

by Matthew Garrett

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 03:38:48PM +0400, Alexey Dobriyan wrote:
> On Mon, Aug 11, 2008 at 04:22:44AM -0700, Arjan van de Ven wrote:
> > yeah don't bother with p4-clockmod, it's not something that saves you
> > energy... it only gives you a fake feeling that you would.
>
> Why it is still in tree?
>
> It's likely that you'll waste more time explaining everybody to not use
> p4-clockmod than send a patch.

Because it's useful for thermal throttling on hardware that doesn't
implement voltage scaling.

--
Matthew Garrett | [email protected]

2008-08-11 13:15:26

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

> It sounds like the BIOS just doesn't support frequency scaling.
> Perhaps it's disabled in the BIOS setup. Or the system doesn't
> support it at all.

It works in Windows XP, so I'm not sure if it's only a BIOS issue.
If it's not that simple, then care to impart some knowledge?

Thanks,
SK

2008-08-11 13:22:41

by Andi Kleen

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 06:15:09AM -0700, S K wrote:
> > It sounds like the BIOS just doesn't support frequency scaling.
> > Perhaps it's disabled in the BIOS setup. Or the system doesn't
> > support it at all.
>
> It works in Windows XP, so I'm not sure if it's only a BIOS issue.

On Windows platform drivers sometimes provide a replacement DSDT
that might enable cpufreq. If that's the case there's nothing
we can do really on the Linux side. You might be able to extract
that DSDT from somewhere and supply it to Linux as a replacement
DSDT, but that's not a supported configuration in the kernel.

> If it's not that simple, then care to impart some knowledge?

If you can't get your BIOS to provide the necessary methods
then useful Linux cpufreq won't work. It's that simple.
p4-clockmod aka throttling might work, but it doesn't actually
save energy and often causes severe performance problems.

-Andi

2008-08-11 14:03:57

by Adrian Bunk

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 04:22:44AM -0700, Arjan van de Ven wrote:
> On Sun, 10 Aug 2008 21:44:50 -0700
> "S K" <[email protected]> wrote:
>
> > > But it is very strange that cpufreq scaling can work on Windows XP.
> > > Will you please try the P4 clock cpufreq driver and see whether the
> > > scaling can work ? In fact P4 clock cpufreq driver is already
> > > replaced by acpi_cpufreq driver for the latest cpu.
> > > Anyway please try p4 clock cpufreq driver.
> >
> > What is the name of the driver? I'm not able to find any such driver
> > in Fedora 9 installed modules. There is only acpi-cpufreq and
> > powernow-k8.
>
> yeah don't bother with p4-clockmod, it's not something that saves you
> energy... it only gives you a fake feeling that you would.

This statement is only true for HPC environments and when you measure
Watts per work done.

But if you have some desktop or server with a load that is determined by
when it gets used, then p4-clockmod can actually save energy when the
computer is not under high load or even idle.

Or do I miss anything?

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2008-08-11 14:07:55

by Matthew Garrett

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 05:02:06PM +0300, Adrian Bunk wrote:

> This statement is only true for HPC environments and when you measure
> Watts per work done.
>
> But if you have some desktop or server with a load that is determined by
> when it gets used, then p4-clockmod can actually save energy when the
> computer is not under high load or even idle.
>
> Or do I miss anything?

On modern hardware, the C states will win you more than downclocking the
processor would.

--
Matthew Garrett | [email protected]

2008-08-11 14:11:40

by Arjan van de Ven

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, 11 Aug 2008 17:02:06 +0300
Adrian Bunk <[email protected]> wrote:

> On Mon, Aug 11, 2008 at 04:22:44AM -0700, Arjan van de Ven wrote:
> > On Sun, 10 Aug 2008 21:44:50 -0700
> > "S K" <[email protected]> wrote:
> >
> > > > But it is very strange that cpufreq scaling can work on Windows
> > > > XP. Will you please try the P4 clock cpufreq driver and see
> > > > whether the scaling can work ? In fact P4 clock cpufreq driver
> > > > is already replaced by acpi_cpufreq driver for the latest cpu.
> > > > Anyway please try p4 clock cpufreq driver.
> > >
> > > What is the name of the driver? I'm not able to find any such
> > > driver in Fedora 9 installed modules. There is only acpi-cpufreq
> > > and powernow-k8.
> >
> > yeah don't bother with p4-clockmod, it's not something that saves
> > you energy... it only gives you a fake feeling that you would.
>
> This statement is only true for HPC environments and when you measure
> Watts per work done.
>
> But if you have some desktop or server with a load that is determined
> by when it gets used, then p4-clockmod can actually save energy when
> the computer is not under high load or even idle.
>
> Or do I miss anything?

yes you're missing quite a few things...
lets build this up

1) when the cpu is idle (as in "idle loop C states/hlt"; p4_clockmod
doesn't mean anything.. the clock is stopped not just skipped.
2) when the cpu is executing code (eg non-idle), it takes more power
for a unit of time than it takes when it's idle
3) when the cpu is in thermal throttle (p4_clockmod) and does a
throttle cycle, it'll take less power for that cycle than a full
execution (at least of the power intensive type of instruction), but
more than if it would have been in idle.

now lets take your "Light load" example (light could mean anything less
than 100% cpu use for all I care) and lets assume a 50% throttle (just
because it makes the explenation simpler, not fundamental)

in 50% thermal throttle, after every cycle a throttle cycle is
inserted, this means that code that gets executed will take 2x as long
basically.

take your lightly loaded case, and lets say you have 20% CPU
utilization in the unthrottled case (again, random number, works with
any number). Now with the thermal throttle, you suddenly take 40%.

so before you had for one second "20% expensive, 80% low power"
now you have for one second "20% expensive, 20% throttle power, 60% low
power"

since throttle power is higher than low/idle power.. you lose.

--
If you want to reach me at my work email, use [email protected]
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2008-08-11 14:12:35

by Arjan van de Ven

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, 11 Aug 2008 15:07:34 +0100
Matthew Garrett <[email protected]> wrote:

> On Mon, Aug 11, 2008 at 05:02:06PM +0300, Adrian Bunk wrote:
>
> > This statement is only true for HPC environments and when you
> > measure Watts per work done.
> >
> > But if you have some desktop or server with a load that is
> > determined by when it gets used, then p4-clockmod can actually save
> > energy when the computer is not under high load or even idle.
> >
> > Or do I miss anything?
>
> On modern hardware, the C states will win you more than downclocking
> the processor would.
>

actually.. p4_clockmod is *NOT* downclocking the processor.. that's the
whole problem with it..



--
If you want to reach me at my work email, use [email protected]
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2008-08-11 16:05:38

by Adrian Bunk

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 07:11:28AM -0700, Arjan van de Ven wrote:
>...
> so before you had for one second "20% expensive, 80% low power"
> now you have for one second "20% expensive, 20% throttle power, 60% low
> power"
>
> since throttle power is higher than low/idle power.. you lose.

So what is the intended use case?

Is it for people who bought an Intel Heating 4 but forgot to buy an
appropriate cooling?

That sounds absurd.

There must be a reason why Intels CPUs support this throttling?

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2008-08-11 16:20:55

by Arjan van de Ven

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, 11 Aug 2008 19:03:46 +0300
Adrian Bunk <[email protected]> wrote:

> On Mon, Aug 11, 2008 at 07:11:28AM -0700, Arjan van de Ven wrote:
> >...
> > so before you had for one second "20% expensive, 80% low power"
> > now you have for one second "20% expensive, 20% throttle power, 60%
> > low power"
> >
> > since throttle power is higher than low/idle power.. you lose.
>
> So what is the intended use case?
>

it's thermal throttling.
To forcefully reduce the number of cycles that have the full "execute"
power in order to clamp the temperature if the cpu is too hot.

>
> There must be a reason why Intels CPUs support this throttling?


yes there is.. for cases where there is overtemperature. Think of it as
the emergency break in the subway. You really don't want to use it but
when you need it you're glad it's there.


--
If you want to reach me at my work email, use [email protected]
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2008-08-11 16:30:40

by Adrian Bunk

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 09:20:47AM -0700, Arjan van de Ven wrote:
> On Mon, 11 Aug 2008 19:03:46 +0300
> Adrian Bunk <[email protected]> wrote:
>
> > On Mon, Aug 11, 2008 at 07:11:28AM -0700, Arjan van de Ven wrote:
> > >...
> > > so before you had for one second "20% expensive, 80% low power"
> > > now you have for one second "20% expensive, 20% throttle power, 60%
> > > low power"
> > >
> > > since throttle power is higher than low/idle power.. you lose.
> >
> > So what is the intended use case?
> >
>
> it's thermal throttling.
> To forcefully reduce the number of cycles that have the full "execute"
> power in order to clamp the temperature if the cpu is too hot.
>
> >
> > There must be a reason why Intels CPUs support this throttling?
>
>
> yes there is.. for cases where there is overtemperature. Think of it as
> the emergency break in the subway. You really don't want to use it but
> when you need it you're glad it's there.

But this only helps when the cooling is working but not good enough,
for the classic "fan broken" case it won't cool down enough.

Does the Pentium 4 predate CPUs that shutdown when becoming too hot
(I experienced such a shutdown recently on my Athlon...)?

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2008-08-11 16:44:37

by Arjan van de Ven

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, 11 Aug 2008 19:28:39 +0300
Adrian Bunk <[email protected]> wrote:

> >
> > yes there is.. for cases where there is overtemperature. Think of
> > it as the emergency break in the subway. You really don't want to
> > use it but when you need it you're glad it's there.
>
> But this only helps when the cooling is working but not good enough,
> for the classic "fan broken" case it won't cool down enough.

I would call this an unclassified statement for which you have no data
to show that it's correct, at least for Intel cpus in general.

>
> Does the Pentium 4 predate CPUs that shutdown when becoming too hot
> (I experienced such a shutdown recently on my Athlon...)?
>

thermal shutdown is the last measure for sure (and it's in cpus yes)...
but sysadmins frown on that.. before you go down that path there's
various things that happen first (thermal throttle being one of them)


--
If you want to reach me at my work email, use [email protected]
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2008-08-11 19:33:30

by Dominik Brodowski

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Hi,

On Mon, Aug 11, 2008 at 07:11:28AM -0700, Arjan van de Ven wrote:
> 1) when the cpu is idle (as in "idle loop C states/hlt"; p4_clockmod
> doesn't mean anything.. the clock is stopped not just skipped.
> 2) when the cpu is executing code (eg non-idle), it takes more power
> for a unit of time than it takes when it's idle

This statement might be true, but might also be wrong:
a) on systems where only C1 is exported, p4-clockmod most often
equals the state the CPU is in when in C1[*], so we're in a
win-win, or lose-lose situation.
b) IIRC 50% throttling is not "execute-one-statement
skip-one-statement execute-one-statement, etc." but instead
work for N us, skip for N us, work for N us, etc. Therefore,
the situation is a bit more compilcated.

Still, I agree that p4-clockmod is useful mostly in corner cases (and for
developing the cpufreq infrastructure in the first case, but that's another
story)

[*] or C2 even?

Best,
Dominik

2008-08-11 23:59:32

by Arjan van de Ven

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, 11 Aug 2008 21:33:17 +0200
Dominik Brodowski <[email protected]> wrote:

> Hi,
>
> On Mon, Aug 11, 2008 at 07:11:28AM -0700, Arjan van de Ven wrote:
> > 1) when the cpu is idle (as in "idle loop C states/hlt"; p4_clockmod
> > doesn't mean anything.. the clock is stopped not just skipped.
> > 2) when the cpu is executing code (eg non-idle), it takes more power
> > for a unit of time than it takes when it's idle
>
> This statement might be true, but might also be wrong:
> a) on systems where only C1 is exported, p4-clockmod most
> often equals the state the CPU is in when in C1[*],

that's.. not entirely true btw.

>so we're in a
> win-win, or lose-lose situation.

even if it were EXACTLY identical (which it isn't).. you would be at
BEST a tie... not a savings. so it's lose-lose or tie-tie, but never win


> b) IIRC 50% throttling is not "execute-one-statement
> skip-one-statement execute-one-statement, etc." but instead
> work for N us, skip for N us, work for N us, etc.
> Therefore, the situation is a bit more compilcated.

doesn't change the fundamental math though.


--
If you want to reach me at my work email, use [email protected]
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2008-08-12 05:43:49

by S K

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Wow! Didn't mean to start a "tech war" here (point's at the long
thread arguing the use of p4-clockmod).

>> It works in Windows XP, so I'm not sure if it's only a BIOS issue.
>
> On Windows platform drivers sometimes provide a replacement DSDT
> that might enable cpufreq. If that's the case there's nothing
> we can do really on the Linux side. You might be able to extract
> that DSDT from somewhere and supply it to Linux as a replacement
> DSDT, but that's not a supported configuration in the kernel.

I don't remember installing any special driver for Windows XP.
Since you claim that as a possibility, is there something that I can look
for to check if this is the case?

The reason I'm questioning this so much is because I plan to contact
Shuttle tech support and try to get them to fix this if it really is a BIOS
issue. But I need valid points to make sure they don't pass on the
blame and slip away. They do seem to release BIOS updates now and then
so I'm hoping I can coax them to release one.

>> If it's not that simple, then care to impart some knowledge?
>
> If you can't get your BIOS to provide the necessary methods
> then useful Linux cpufreq won't work. It's that simple.
> p4-clockmod aka throttling might work, but it doesn't actually
> save energy and often causes severe performance problems.

I definitely don't want to use anything that will have a drastic
effect on performance.

Thanks,
SK

2008-08-12 19:03:20

by Dominik Brodowski

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

Hi Arjan,

On Mon, Aug 11, 2008 at 04:58:16PM -0700, Arjan van de Ven wrote:
> > Hi,
> >
> > On Mon, Aug 11, 2008 at 07:11:28AM -0700, Arjan van de Ven wrote:
> > > 1) when the cpu is idle (as in "idle loop C states/hlt"; p4_clockmod
> > > doesn't mean anything.. the clock is stopped not just skipped.
> > > 2) when the cpu is executing code (eg non-idle), it takes more power
> > > for a unit of time than it takes when it's idle
> >
> > This statement might be true, but might also be wrong:
> > a) on systems where only C1 is exported, p4-clockmod most
> > often equals the state the CPU is in when in C1[*],
>
> that's.. not entirely true btw.

well, the spec isn't really clear about this. It says (IA32 Intel
Architecture Software Developer's Manual, Volume 3, section 13.14.3) that
P6 family processors did this using STPCLK#. And STPCLK# was also used by the
chipset to force the CPU to enter C2, IIRC.
Do P4s only do an C1-equivalent (or even less than that) now, as they do the
thermal throttling internally instead of externally using STPCLK#?

> >so we're in a
> > win-win, or lose-lose situation.
>
> even if it were EXACTLY identical (which it isn't).. you would be at
> BEST a tie... not a savings. so it's lose-lose or tie-tie, but never win

If it's C2-equivalent vs. C1, it's a win. So throttling would be a win from
this perspective on a only C1-capable PIII, but not on a P4? Is that what
you're trying to hint at here?

To summarize:

(1) p6 family processors use STPCLK# initiated by the chipset for thermal
throttling.
(2) STPCLK# is also used by the chipset to make the CPU enter C2.
(3) p4-clockmod uses the STPCLK#-equivalent in p4 CPUs.
(4) Therefore, it is as effective as STPCLK#, and as effective as C2.
(5) STPCLK#/C2 has higher energy savings than hlt/C1.
(6) therefore, p4-clockmod might make sense on systems which only export C1
as an idle state.

Where's my mistake?

Thanks,
Dominik

2008-08-12 19:29:21

by Adrian Bunk

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Mon, Aug 11, 2008 at 09:44:28AM -0700, Arjan van de Ven wrote:
> On Mon, 11 Aug 2008 19:28:39 +0300
> Adrian Bunk <[email protected]> wrote:
>
> > >
> > > yes there is.. for cases where there is overtemperature. Think of
> > > it as the emergency break in the subway. You really don't want to
> > > use it but when you need it you're glad it's there.
> >
> > But this only helps when the cooling is working but not good enough,
> > for the classic "fan broken" case it won't cool down enough.
>
> I would call this an unclassified statement for which you have no data
> to show that it's correct, at least for Intel cpus in general.
>...

Sorry, I was a bit too surprised after your description.

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2008-08-12 20:00:04

by Arjan van de Ven

[permalink] [raw]
Subject: Re: cpufreq doesn't seem to work in Intel Q9300

On Tue, 12 Aug 2008 21:03:02 +0200
Dominik Brodowski <[email protected]> wrote:

> Hi Arjan,
>
> On Mon, Aug 11, 2008 at 04:58:16PM -0700, Arjan van de Ven wrote:
> > > Hi,
> > >
> > > On Mon, Aug 11, 2008 at 07:11:28AM -0700, Arjan van de Ven wrote:
> > > > 1) when the cpu is idle (as in "idle loop C states/hlt";
> > > > p4_clockmod doesn't mean anything.. the clock is stopped not
> > > > just skipped. 2) when the cpu is executing code (eg non-idle),
> > > > it takes more power for a unit of time than it takes when it's
> > > > idle
> > >
> > > This statement might be true, but might also be wrong:
> > > a) on systems where only C1 is exported, p4-clockmod most
> > > often equals the state the CPU is in when in C1[*],
> >
> > that's.. not entirely true btw.
>
> well, the spec isn't really clear about this. It says (IA32 Intel
> Architecture Software Developer's Manual, Volume 3, section 13.14.3)
> that P6 family processors did this using STPCLK#. And STPCLK# was
> also used by the chipset to force the CPU to enter C2, IIRC.

not quite.. if it does for a certain cpu, then it's only for cpus that
support C2.


> Do P4s only do an C1-equivalent (or even less than that) now, as they
> do the thermal throttling internally instead of externally using
> STPCLK#?

it's basically always less (or really best case equal) than c1 just due
to the really short duration
>

> If it's C2-equivalent vs. C1, it's a win.

it's not.

>So throttling would be a
> win from this perspective on a only C1-capable PIII, but not on a P4?
> Is that what you're trying to hint at here?

not even on PIII is it a win.. it's just too short a duration
and your C2 theory.. not sure I believe it.


>
> To summarize:
>
> (1) p6 family processors use STPCLK# initiated by the chipset for
> thermal throttling.
> (2) STPCLK# is also used by the chipset to make the CPU enter C2.

well.... sometimes. It's more complex generally.

> (3) p4-clockmod uses the STPCLK#-equivalent in p4 CPUs.
> (4) Therefore, it is as effective as STPCLK#, and as effective as C2.

This is not correct. C2 is only effective if you stay in it "long
enough". Otherwise you pay the transition cost twice.


> (5) STPCLK#/C2 has higher energy savings than hlt/C1.

incorrect



--
If you want to reach me at my work email, use [email protected]
For development, discussion and tips for power savings,
visit http://www.lesswatts.org