lkml.org 
[lkml]   [2012]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/6 v3] cpufreq: tolerate inexact values when collecting stats
    Date
    Allow frequency values to vary by +/-5000 Hz when collecting stats.

    Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com>
    ---
    Changes from v2:
    None
    Changes from v1:
    Implemented a simple round-up algorithm instead of the over/under
    method that could cause errors on Intel processors with boost mode.

    drivers/cpufreq/cpufreq_stats.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
    index 3998316..4e2ea7e 100644
    --- a/drivers/cpufreq/cpufreq_stats.c
    +++ b/drivers/cpufreq/cpufreq_stats.c
    @@ -158,9 +158,11 @@ static struct attribute_group stats_attr_group = {
    static int freq_table_get_index(struct cpufreq_stats *stat, unsigned int freq)
    {
    int index;
    - for (index = 0; index < stat->max_state; index++)
    - if (stat->freq_table[index] == freq)
    + for (index = 0; index < stat->max_state; index++) {
    + if ((stat->freq_table[index] < (freq + 5000)) &&
    + (stat->freq_table[index] > (freq - 5000)))
    return index;
    + }
    return -1;
    }

    @@ -251,6 +253,8 @@ static int cpufreq_stats_create_table(struct cpufreq_policy *policy,
    spin_lock(&cpufreq_stats_lock);
    stat->last_time = get_jiffies_64();
    stat->last_index = freq_table_get_index(stat, policy->cur);
    + if (stat->last_index > stat->max_state)
    + stat->last_index = stat->max_state - 1;
    spin_unlock(&cpufreq_stats_lock);
    cpufreq_cpu_put(data);
    return 0;
    --
    1.7.11.7


    \
     
     \ /
      Last update: 2012-11-06 21:41    [W:2.694 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site