From: Thomas Renninger <trenn@suse.de>
To: "Ferdinand Hübner" <fh@cvmx.org>
Cc: cpufreq@lists.linux.org.uk
Subject: Re: CPU-Frequency limited to lowest available frequency while under load
Date: Wed, 31 Oct 2007 14:28:39 +0100 [thread overview]
Message-ID: <1193837319.4590.466.camel@queen.suse.de> (raw)
In-Reply-To: <4727062E.9090806@cvmx.org>
On Tue, 2007-10-30 at 11:23 +0100, Ferdinand Hübner wrote:
> Hello,
>
> since I've upgraded to 2.6.23, the current frequency scaling policy is
> being changed whenever the CPU is under load.
> My CPU is a Core2Duo T7200, frequency steps: 2.00 GHz, 1.67 GHz, 1.33
> GHz, 1000 MHz
> I'm using the acpi-cpufreq driver and am setting the governor to
> 'ondemand' via cpufrequtils.
> When the system is booted, the scaling works as expected, the partial
> output from cpufreq-info:
>
> current policy: frequency should be within 1000 MHz and 2.00 GHz.
>
> However, when I start compiling something the policy is being changed to
> the following:
>
> current policy: frequency should be within 1000 MHz and 1000 MHz.
>
> This problem didn't exist with kernels prior to 2.6.23 (I was using
> gentoo-sources most of the time), same behaviour as with 2.6.23 can be
> observed with 2.6.24-rc1.
>
> I'm not entirely sure if this is a problem with cpufreq, so I apologize
> if this is not the right place to ask for help.
>
> Anyway, everytime the maximum CPU frequency is being changed, I receive
> the following ACPI events a few seconds afterwards (these events are not
> being handled)
>
> processor CPU0 00000080 00000003
> processor CPU1 00000080 00000003
>
> Setting the maximum frequency back to 2GHz (cpufreq-set -u 2000MHz) has
> either no effect at all, or is being reverted to 1GHz 30 seconds after that.
> The 'performance' governor is showing the same behaviour.
>
> I've attached my kernel config for ACPI/CPUFREQ and the output from
> acpitool -e.
>
> What can I do to get the "old" behaviour back? I just want the maximum
> frequency to stay at 2GHz...
It can be:
1) frequency limited by BIOS through _PPC
2) frequency reduced by thermal passive limit
3) some really odd cpufreq core bug
>From the last bugs occurring in this area I expect it's 1.
You should add a printk in drivers/acpi/processor_perflib.c
acpi_processor_get_platform_limit():
status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc);
and print out the ppc value here, best after the checks whether this
call succeeded.
This should be picked up in cpufreq debug output as _PPC often caused
cpufreq problems. A quick look tells me that it is a bit ugly to use
cpufreq debug syntax in acpi layer, but it should be possible and
appropriate.
If _PPC is 0 all freqs are allowed, if it is 1 the highest freq is not
allowed anymore..., so this should always be 0 when working on AC power.
If it is this it could be that:
- ACPI is confused
- It is intended by BIOS (are you working on battery -> look up
your BIOS options, maybe you can modify anything related)
- _PPC is wrong at init (or later) and the value is not reevaluated
at later point
- ...
Maybe you should open a bugreport on http://bugzilla.kernel.org, pls add
me to CC then.
Thomas
> Thank you,
>
> Ferdinand
>
> plain text document attachment (kernel-config.txt)
> #
> # Power management options (ACPI, APM)
> #
> CONFIG_PM=y
> # CONFIG_PM_LEGACY is not set
> # CONFIG_PM_DEBUG is not set
> CONFIG_PM_SLEEP_SMP=y
> CONFIG_PM_SLEEP=y
> CONFIG_SUSPEND_SMP_POSSIBLE=y
> CONFIG_SUSPEND=y
> CONFIG_HIBERNATION_SMP_POSSIBLE=y
> # CONFIG_HIBERNATION is not set
> CONFIG_ACPI=y
> CONFIG_ACPI_SLEEP=y
> # CONFIG_ACPI_PROCFS is not set
> CONFIG_ACPI_PROC_EVENT=y
> CONFIG_ACPI_BUTTON=y
> # CONFIG_ACPI_VIDEO is not set
> CONFIG_ACPI_FAN=y
> CONFIG_ACPI_DOCK=y
> # CONFIG_ACPI_BAY is not set
> CONFIG_ACPI_PROCESSOR=y
> CONFIG_ACPI_HOTPLUG_CPU=y
> CONFIG_ACPI_THERMAL=y
> # CONFIG_ACPI_ASUS is not set
> # CONFIG_ACPI_TOSHIBA is not set
> CONFIG_ACPI_BLACKLIST_YEAR=2001
> CONFIG_ACPI_DEBUG=y
> # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
> CONFIG_ACPI_EC=y
> CONFIG_ACPI_POWER=y
> CONFIG_ACPI_SYSTEM=y
> CONFIG_X86_PM_TIMER=y
> CONFIG_ACPI_CONTAINER=y
> # CONFIG_APM is not set
>
> #
> # CPU Frequency scaling
> #
> CONFIG_CPU_FREQ=y
> CONFIG_CPU_FREQ_TABLE=y
> CONFIG_CPU_FREQ_DEBUG=y
> # CONFIG_CPU_FREQ_STAT is not set
> # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
> # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
> CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
> # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
> CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
> CONFIG_CPU_FREQ_GOV_POWERSAVE=y
> # CONFIG_CPU_FREQ_GOV_USERSPACE is not set
> CONFIG_CPU_FREQ_GOV_ONDEMAND=y
> CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
>
> #
> # CPUFreq processor drivers
> #
> CONFIG_X86_ACPI_CPUFREQ=y
> # CONFIG_X86_POWERNOW_K6 is not set
> # CONFIG_X86_POWERNOW_K7 is not set
> # CONFIG_X86_POWERNOW_K8 is not set
> # CONFIG_X86_GX_SUSPMOD is not set
> # CONFIG_X86_SPEEDSTEP_CENTRINO is not set
> # CONFIG_X86_SPEEDSTEP_ICH is not set
> # CONFIG_X86_SPEEDSTEP_SMI is not set
> # CONFIG_X86_P4_CLOCKMOD is not set
> # CONFIG_X86_CPUFREQ_NFORCE2 is not set
> # CONFIG_X86_LONGRUN is not set
> # CONFIG_X86_LONGHAUL is not set
> # CONFIG_X86_E_POWERSAVER is not set
>
> #
> # shared options
> #
> # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
> # CONFIG_X86_SPEEDSTEP_LIB is not set
> CONFIG_CPU_IDLE=y
> CONFIG_CPU_IDLE_GOV_LADDER=y
> CONFIG_CPU_IDLE_GOV_MENU=y
> plain text document attachment (acpitool.txt)
> Kernel version : 2.6.24-rc1 - ACPI version : \x182.6
> -----------------------------------------------------------
> Battery status : <not available>
>
> AC adapter : <not available>
> Fan : enabled
> Fan Speed : 3507 RPM
>
> CPU type : Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz
> Min/Max frequency : 1000/1000 MHz
> Current frequency : 1000 MHz
> Frequency governor : ondemand
> Freq. scaling driver : acpi-cpufreq
> Cache size : 4096 KB
> Bogomips : 4023.70
> Bogomips : 3990.04
>
> # of CPU's found : 2
>
> Processor ID : 0
> Bus mastering control : yes
> Power management : yes
> Throttling control : yes
> Limit interface : yes
> Active C-state : C0
> C-states (incl. C0) : 4
> Usage of state C1 : 4148 (0.0 %)
> Usage of state C2 : 13181091 (74.0 %)
> Usage of state C3 : 4636873 (26.0 %)
> T-state count : 8
> Active T-state : T8
>
>
> Processor ID : 1
> Bus mastering control : yes
> Power management : yes
> Throttling control : yes
> Limit interface : yes
> Active C-state : C0
> C-states (incl. C0) : 4
> Usage of state C1 : 6062 (0.0 %)
> Usage of state C2 : 15254283 (67.6 %)
> Usage of state C3 : 2673667 (11.8 %)
> T-state count : 8
> Active T-state : T8
>
>
>
> Thermal zone 1 : ok, 52 C
> Trip points :
> -------------
> critical (S5): 127 C
>
> Thermal zone 2 : ok, 53 C
> Trip points :
> -------------
> critical (S5): 99 C
> passive: 95 C: tc1=5 tc2=4 tsp=600 devices=CPU0 CPU1
>
>
> Device S-state Status Sysfs node
> ---------------------------------------
> 1. LID S3 *enabled
> 2. SLPB S3 *enabled
> 3. EXP0 S4 disabled pci:0000:00:1c.0
> 4. EXP1 S4 disabled pci:0000:00:1c.1
> 5. EXP2 S4 disabled pci:0000:00:1c.2
> 6. EXP3 S4 disabled pci:0000:00:1c.3
> 7. PCI1 S4 disabled pci:0000:00:1e.0
> 8. USB0 S3 disabled pci:0000:00:1d.0
> 9. USB1 S3 disabled pci:0000:00:1d.1
> 10. USB2 S3 disabled pci:0000:00:1d.2
> 11. USB7 S3 disabled pci:0000:00:1d.7
> 12. HDEF S4 disabled pci:0000:00:1b.0
> _______________________________________________
> Cpufreq mailing list
> Cpufreq@lists.linux.org.uk
> http://lists.linux.org.uk/mailman/listinfo/cpufreq
_______________________________________________
Cpufreq mailing list
Cpufreq@lists.linux.org.uk
http://lists.linux.org.uk/mailman/listinfo/cpufreq
next prev parent reply other threads:[~2007-10-31 13:28 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-30 10:23 CPU-Frequency limited to lowest available frequency while under load Ferdinand Hübner
2007-10-31 13:28 ` Thomas Renninger [this message]
2007-11-01 18:07 ` Ferdinand Hübner
2007-11-01 18:31 ` Thomas Renninger
2007-11-01 18:36 ` Jarod Wilson
2007-11-06 16:01 ` Ferdinand Hübner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1193837319.4590.466.camel@queen.suse.de \
--to=trenn@suse.de \
--cc=cpufreq@lists.linux.org.uk \
--cc=fh@cvmx.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox