cpufreq Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

  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