Hi Dear Poynor/All cpufreq owner,
I studied the cpufreq interactive governor recently, and there is per cpu timer for each cpu, that means the workload will be queried and calculated based on each cpu's workload when timer expires.
I am considering about the case of bad application then workload balance is not well issued, may lead to one core is busy, the other is idle on SMP system. This may lead to one core want to increase the core frequency as it is busy, the other core want to decrease the core frequency as it is idle. But SMP system two cores always runs at the same frequency, and the behavior will lead to performance drop.
How does interactive handle this case? I know that ondemand governor has opportunity to consider the max workload of all online cpu and make frequency change decision based on the max workload(policy->cpus set to all cpu_mask). Whether interactive will consider the same way?
Could you please help to give some suggestion or let me know if i have some misunderstanding of this part?
Thanks.
-- Zhoujie Wu
Hi, the cpufreq interactive governor computes the maximum target speed of all CPUs of policy->cpus and sets that speed (at cpufreq_interactive_speedchange_task). All platform layer cpufreq implementations (that I know of) do the same thing underneath as well.
Todd
On Mon, Feb 4, 2013 at 3:36 AM, zhoujie wu zhoujiewu@gmail.com wrote:
Hi Dear Poynor/All cpufreq owner,
I studied the cpufreq interactive governor recently, and there is per cpu timer for each cpu, that means the workload will be queried and calculated based on each cpu's workload when timer expires.
I am considering about the case of bad application then workload balance is not well issued, may lead to one core is busy, the other is idle on SMP system. This may lead to one core want to increase the core frequency as it is busy, the other core want to decrease the core frequency as it is idle. But SMP system two cores always runs at the same frequency, and the behavior will lead to performance drop.
How does interactive handle this case? I know that ondemand governor has opportunity to consider the max workload of all online cpu and make frequency change decision based on the max workload(policy->cpus set to all cpu_mask). Whether interactive will consider the same way?
Could you please help to give some suggestion or let me know if i have some misunderstanding of this part?
Thanks.
-- Zhoujie Wu