• Rafael J. Wysocki's avatar
    cpufreq: governor: Get rid of the ->gov_check_cpu callback · 4cccf755
    Rafael J. Wysocki authored
    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: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    4cccf755
cpufreq_ondemand.c 14.2 KB