From: Preeti U Murthy <preeti@linux.vnet.ibm.com>
To: Viresh Kumar <viresh.kumar@linaro.org>,
Rafael Wysocki <rjw@rjwysocki.net>
Cc: linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org,
ego@linux.vnet.ibm.com, paulus@samba.org,
shilpa.bhat@linux.vnet.ibm.com, prarit@redhat.com,
robert.schoene@tu-dresden.de, skannan@codeaurora.org
Subject: Re: [PATCH 2/3] cpufreq: governor: split cpufreq_governor_dbs()
Date: Thu, 04 Jun 2015 15:34:15 +0530 [thread overview]
Message-ID: <5570229F.3080808@linux.vnet.ibm.com> (raw)
In-Reply-To: <6880bd7b6e6e7968f008d6328ab15353d99ccd57.1433326032.git.viresh.kumar@linaro.org>
On 06/03/2015 03:57 PM, Viresh Kumar wrote:
> cpufreq_governor_dbs() is hardly readable, it is just too big and
> complicated. Lets make it more readable by splitting out event specific
> routines.
>
> Order of statements is changed at few places, but that shouldn't bring
> any functional change.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
> Best way to verify the changes here is to keep both copies of code side
> by side and comparing it event wise.
>
> drivers/cpufreq/cpufreq_governor.c | 326 +++++++++++++++++++++----------------
> 1 file changed, 185 insertions(+), 141 deletions(-)
>
> diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
> index d64a82e6481a..dc382a5a2158 100644
> --- a/drivers/cpufreq/cpufreq_governor.c
> +++ b/drivers/cpufreq/cpufreq_governor.c
> @@ -239,195 +239,239 @@ static void set_sampling_rate(struct dbs_data *dbs_data,
> }
> }
>
> -int cpufreq_governor_dbs(struct cpufreq_policy *policy,
> - struct common_dbs_data *cdata, unsigned int event)
> +static int cpufreq_governor_init(struct cpufreq_policy *policy,
> + struct dbs_data *dbs_data,
> + struct common_dbs_data *cdata)
> {
> - struct dbs_data *dbs_data;
> - struct od_cpu_dbs_info_s *od_dbs_info = NULL;
> - struct cs_cpu_dbs_info_s *cs_dbs_info = NULL;
> - struct od_ops *od_ops = NULL;
> - struct od_dbs_tuners *od_tuners = NULL;
> - struct cs_dbs_tuners *cs_tuners = NULL;
> - struct cpu_dbs_common_info *cpu_cdbs;
> - unsigned int sampling_rate, latency, ignore_nice, j, cpu = policy->cpu;
> - int io_busy = 0;
> - int rc;
> + unsigned int latency;
> + int ret;
>
> - if (have_governor_per_policy())
> - dbs_data = policy->governor_data;
> - else
> - dbs_data = cdata->gdbs_data;
> + if (dbs_data) {
> + WARN_ON(have_governor_per_policy());
Shouldn't this be outside this loop ? We warn here and allocate dbs_dta
freshly in the current code for the case where governor is per policy.
> + dbs_data->usage_count++;
Besides, in the case where a governor exists per policy, we will end up
incrementing the usage_count to more than 1 under this condition, which
does not make sense.
> + policy->governor_data = dbs_data;
> + return 0;
> + }
Regards
Preeti U Murthy
next prev parent reply other threads:[~2015-06-04 10:04 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 10:27 [PATCH 0/3] cpufreq: governor: Fix potential races Viresh Kumar
2015-06-03 10:27 ` [PATCH 1/3] cpufreq: governor: register notifier from cs_init() Viresh Kumar
2015-06-04 5:38 ` Preeti U Murthy
2015-06-04 6:02 ` Viresh Kumar
2015-06-04 7:33 ` Preeti U Murthy
2015-06-03 10:27 ` [PATCH 2/3] cpufreq: governor: split cpufreq_governor_dbs() Viresh Kumar
2015-06-04 10:04 ` Preeti U Murthy [this message]
2015-06-04 10:17 ` Viresh Kumar
2015-06-04 11:13 ` [PATCH V2 " Viresh Kumar
2015-06-05 2:51 ` Preeti U Murthy
2015-06-03 10:27 ` [PATCH 3/3] cpufreq: governor: Serialize governor callbacks Viresh Kumar
2015-06-04 10:47 ` Preeti U Murthy
2015-06-04 5:14 ` [PATCH 0/3] cpufreq: governor: Fix potential races Preeti U Murthy
2015-06-04 6:08 ` Preeti U Murthy
2015-06-04 6:11 ` Viresh Kumar
2015-06-04 6:36 ` Preeti U Murthy
2015-06-04 6:42 ` Viresh Kumar
2015-06-04 7:04 ` Preeti U Murthy
2015-06-04 7:13 ` Viresh Kumar
2015-06-04 7:27 ` Preeti U Murthy
2015-06-05 3:00 ` Viresh Kumar
2015-06-05 3:04 ` Preeti U Murthy
2015-06-05 4:05 ` Preeti U Murthy
2015-06-15 23:48 ` Rafael J. Wysocki
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=5570229F.3080808@linux.vnet.ibm.com \
--to=preeti@linux.vnet.ibm.com \
--cc=ego@linux.vnet.ibm.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-pm@vger.kernel.org \
--cc=paulus@samba.org \
--cc=prarit@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=robert.schoene@tu-dresden.de \
--cc=shilpa.bhat@linux.vnet.ibm.com \
--cc=skannan@codeaurora.org \
--cc=viresh.kumar@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.