Thread (24 messages) 24 messages, 3 authors, 2014-03-10

Re: [PATCH 2/2] cpufreq: don't call cpufreq_update_policy() on CPU addition

From: Srivatsa S. Bhat <hidden>
Date: 2014-02-17 09:05:28
Also in: lkml

On 02/17/2014 02:24 PM, Viresh Kumar wrote:
On 17 February 2014 14:13, Srivatsa S. Bhat
[off-list ref] wrote:
quoted
On 02/14/2014 04:30 PM, Viresh Kumar wrote:
quoted
cpufreq_update_policy() is called from two places currently. From a workqueue
handled queued from cpufreq_bp_resume() for boot CPU and from
cpufreq_cpu_callback() whenever a CPU is added.

The first one makes sure that boot CPU is running on the frequency present in
policy->cpu. But we don't really need a call from cpufreq_cpu_callback(),
because we always call cpufreq_driver->init() (which will set policy->cur
correctly) whenever first CPU of any policy is added back. And so every policy
structure is guaranteed to have the right frequency in policy->cur.
This wording is slightly inaccurate. ->init() may or may not set policy->cur
(for example, powernowk8 driver doesn't set it in the init routine)..
Its not the wording that is wrong but this particular driver then :)
This is what Documentation/cpu-drivers.txt says:

1.2 Per-CPU Initialization
Then, the driver must fill in the following values:

policy->cur The current operating frequency of
this CPU (if appropriate)

And so it is supposed to do it.
Ah, I see.
 
quoted
But we set it for sure in __cpufreq_add_dev():

1117         if (cpufreq_driver->get) {
1118                 policy->cur = cpufreq_driver->get(policy->cpu);
1119                 if (!policy->cur) {
1120                         pr_err("%s: ->get() failed\n", __func__);
1121                         goto err_get_freq;
1122                 }
1123         }
Its just about removing that from drivers and doing it once in core :)
Ok..

Regards,
Srivatsa S. Bhat
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help