From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Srivatsa S. Bhat" Subject: Re: [PATCH 2/8] cpufreq: Fix misplaced call to cpufreq_update_policy() Date: Mon, 15 Jul 2013 11:50:24 +0530 Message-ID: <51E394A8.1030001@linux.vnet.ibm.com> References: <20130711221419.547.69781.stgit@srivatsabhat.in.ibm.com> <20130711221553.547.56787.stgit@srivatsabhat.in.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from e23smtp09.au.ibm.com ([202.81.31.142]:47857 "EHLO e23smtp09.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753997Ab3GOGXz (ORCPT ); Mon, 15 Jul 2013 02:23:55 -0400 Received: from /spool/local by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 16 Jul 2013 03:19:28 +1000 In-Reply-To: Sender: linux-pm-owner@vger.kernel.org List-Id: linux-pm@vger.kernel.org To: Viresh Kumar Cc: rjw@sisk.pl, toralf.foerster@gmx.de, robert.jarzmik@intel.com, durgadoss.r@intel.com, tianyu.lan@intel.com, lantianyu1986@gmail.com, dirk.brandewie@gmail.com, stern@rowland.harvard.edu, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org On 07/12/2013 12:36 PM, Viresh Kumar wrote: > On 12 July 2013 03:45, Srivatsa S. Bhat > wrote: >> The call to cpufreq_update_policy() is placed in the CPU hotplug callback >> of cpufreq_stats, which has a higher priority than the CPU hotplug callback >> of cpufreq-core. As a result, during CPU_ONLINE/CPU_ONLINE_FROZEN, we end up >> calling cpufreq_update_policy() *before* calling cpufreq_add_dev() ! >> And for uninitialized CPUs, it just returns silently, not doing anything. > > Hmm.. > >> To add to it, cpufreq_stats is not even the right place to call >> cpufreq_update_policy() to begin with. The cpufreq core ought to handle >> this in its own callback, from an elegance/relevance perspective. >> >> So move the invocation of cpufreq_update_policy() to cpufreq_cpu_callback, >> and place it *after* cpufreq_add_dev(). >> >> Signed-off-by: Srivatsa S. Bhat >> --- >> >> drivers/cpufreq/cpufreq.c | 1 + >> drivers/cpufreq/cpufreq_stats.c | 6 ------ >> 2 files changed, 1 insertion(+), 6 deletions(-) >> >> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c >> index ccc6eab..f8c3100 100644 >> --- a/drivers/cpufreq/cpufreq.c >> +++ b/drivers/cpufreq/cpufreq.c >> @@ -1943,6 +1943,7 @@ static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb, >> case CPU_ONLINE: >> case CPU_ONLINE_FROZEN: >> cpufreq_add_dev(dev, NULL); >> + cpufreq_update_policy(cpu); > > Do we need to call this for every hotplug of cpu? I am not > talking about suspend/resume here. > I don't think we need to, but I think it would be better to postpone optimizations until all the cpufreq regressions get fixed. Later perhaps we could revisit these minor optimizations if desired. Regards, Srivatsa S. Bhat