Re: [PATCH 5/9] cpufreq: governor: Get rid of the ->gov_check_cpu callback

From: Viresh Kumar
Date: Mon Feb 15 2016 - 03:52:37 EST


On 15-02-16, 02:19, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> The way the ->gov_check_cpu governor callback is used by the ondemand
> and conservative governors is not really straightforward. Namely, the
> governor calls dbs_check_cpu() that updates the load information for
> the policy and the invokes ->gov_check_cpu() for the governor.
>
> To get rid of that entanglement, notice that cpufreq_governor_limits()
> doesn't need to call dbs_check_cpu() directly. Instead, it can simply
> reset the sample delay to 0 which will cause a sample to be taken
> immediately. The result of that is practically equivalent to calling
> dbs_check_cpu() except that it will trigger a full update of governor
> internal state and not just the ->gov_check_cpu() part.
>
> Following that observation, make cpufreq_governor_limits() reset
> the sample delay and turn dbs_check_cpu() into a function that will
> simply evaluate the load and return the result called dbs_update().
>
> That function can now be called by governors from the routines that
> previously were pointed to by ->gov_check_cpu and those routines
> can be called directly by each governor instead of dbs_check_cpu().
> This way ->gov_check_cpu becomes unnecessary, so drop it.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> ---
> drivers/cpufreq/cpufreq_conservative.c | 26 +++++++++-----------------
> drivers/cpufreq/cpufreq_governor.c | 15 ++++++++-------
> drivers/cpufreq/cpufreq_governor.h | 3 +--
> drivers/cpufreq/cpufreq_ondemand.c | 15 +++++++++------
> 4 files changed, 27 insertions(+), 32 deletions(-)

Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>

--
viresh