From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Nick Piggin <npiggin@suse.de>
Cc: linuxppc-dev@ozlabs.org, paulus@samba.org
Subject: Re: [patch] powerpc: estimate G5 cpufreq transition latency
Date: Mon, 23 Feb 2009 14:54:28 +1100 [thread overview]
Message-ID: <1235361268.8805.227.camel@pasglop> (raw)
In-Reply-To: <20090219170741.GI1747@wotan.suse.de>
On Thu, 2009-02-19 at 18:07 +0100, Nick Piggin wrote:
> Setting G5's cpu frequency transition latency to CPUFREQ_ETERNAL stops
> ondemand governor from working. I measured the latency using sched_clock
> and haven't seen much higher than 11000ns, so I set this to 12000ns for
> my configuration. Possibly other configurations will be different?
> Ideally the generic code would be able to measure it in case the platform
> does not provide it.
>
> But this simple patch at least makes it throttle again.
>
> Signed-off-by: Nick Piggin <npiggin@suse.de>
> ---
Oh well, I've never used ondemand but some userspace stuff instead :-)
No objection appart from the change to drivers/cpufreq/cpufreq.c which
should be in a separate patch to whoever maintains that code :-)
Cheers,
Ben.
> Index: linux-2.6/arch/powerpc/platforms/powermac/cpufreq_64.c
> ===================================================================
> --- linux-2.6.orig/arch/powerpc/platforms/powermac/cpufreq_64.c 2009-02-20 01:42:41.000000000 +1100
> +++ linux-2.6/arch/powerpc/platforms/powermac/cpufreq_64.c 2009-02-20 01:50:15.000000000 +1100
> @@ -86,6 +86,7 @@
>
> static DEFINE_MUTEX(g5_switch_mutex);
>
> +static unsigned long transition_latency;
>
> #ifdef CONFIG_PMAC_SMU
>
> @@ -357,7 +358,7 @@
>
> static int g5_cpufreq_cpu_init(struct cpufreq_policy *policy)
> {
> - policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
> + policy->cpuinfo.transition_latency = transition_latency;
> policy->cur = g5_cpu_freqs[g5_query_freq()].frequency;
> /* secondary CPUs are tied to the primary one by the
> * cpufreq core if in the secondary policy we tell it that
> @@ -500,6 +501,7 @@
> g5_cpu_freqs[1].frequency = max_freq/2;
>
> /* Set callbacks */
> + transition_latency = 12000;
> g5_switch_freq = g5_scom_switch_freq;
> g5_query_freq = g5_scom_query_freq;
> freq_method = "SCOM";
> @@ -675,6 +677,7 @@
> g5_cpu_freqs[1].frequency = min_freq;
>
> /* Set callbacks */
> + transition_latency = CPUFREQ_ETERNAL;
> g5_switch_volt = g5_pfunc_switch_volt;
> g5_switch_freq = g5_pfunc_switch_freq;
> g5_query_freq = g5_pfunc_query_freq;
> Index: linux-2.6/drivers/cpufreq/cpufreq.c
> ===================================================================
> --- linux-2.6.orig/drivers/cpufreq/cpufreq.c 2009-02-20 01:42:43.000000000 +1100
> +++ linux-2.6/drivers/cpufreq/cpufreq.c 2009-02-20 01:50:15.000000000 +1100
> @@ -1559,9 +1559,11 @@
> else {
> printk(KERN_WARNING "%s governor failed, too long"
> " transition latency of HW, fallback"
> - " to %s governor\n",
> + " to %s governor (latency=%lld max=%lld)\n",
> policy->governor->name,
> - gov->name);
> + gov->name,
> + policy->cpuinfo.transition_latency,
> + policy->governor->max_transition_latency);
> policy->governor = gov;
> }
> }
prev parent reply other threads:[~2009-02-23 3:54 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-19 17:07 [patch] powerpc: estimate G5 cpufreq transition latency Nick Piggin
2009-02-23 3:54 ` Benjamin Herrenschmidt [this message]
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=1235361268.8805.227.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=npiggin@suse.de \
--cc=paulus@samba.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;
as well as URLs for NNTP newsgroup(s).