On Monday, August 05, 2013 12:31:40 PM Viresh Kumar wrote: > On Sat, Aug 3, 2013 at 2:10 AM, Martin von Gagern > <Martin.vGagern@xxxxxxx> wrote: > > I just noticed that recently (apparently since 4d5dcc4211f9def4) the > > sysfs file that used to be called ignore_nice_load is now called > > ignore_nice. I don't know why this was renamed, but what has me > > worried even more is the fact that the documentation in > > Documentation/cpu-freq/governors.txt wasn't updated accordingly: it > > still talks about ignore_nice_load. It would be beter to synchronize > > these two again. > > It was an unintentional change... And so we have a bug in our code > now. > > > Investigating this issue, I also found that the file used to be called > > ignore_nice in the past, but at that point apparently had an inverted > > meaning. The node was renamed deliberately in 001893cda2f280ab when > > the semantics changed. I can't help but wonder whether anyone might > > now get confused with this old name popping up again, after all this > > time. Either name is fine by me, but I am surprised nevertheless. > > Please try following patch (attached for applying). > @Rafael: This bug got introduced recently 3.10, so we may consider it > as a fix for 3.11? Yes. Thanks, Rafael > ------------x----------------x--------------------- > > From: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > Date: Mon, 5 Aug 2013 12:28:02 +0530 > Subject: [PATCH] cpufreq: rename ignore_nice as ignore_nice_load > > This sysfs file was earlier called ignore_nice_load and by mistake was changed > to ignore_nice during this patch: > > commit 4d5dcc4211f9def4281eafb54b8ed483862e8135 > Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > Date: Wed Mar 27 15:58:58 2013 +0000 > > cpufreq: governor: Implement per policy instances of governors > > Lets get it renamed back to its original name. > > Reported-by: Martin von Gagern <Martin.vGagern@xxxxxxx> > Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > --- > drivers/cpufreq/cpufreq_conservative.c | 20 ++++++++++---------- > drivers/cpufreq/cpufreq_governor.c | 8 ++++---- > drivers/cpufreq/cpufreq_governor.h | 4 ++-- > drivers/cpufreq/cpufreq_ondemand.c | 20 ++++++++++---------- > 4 files changed, 26 insertions(+), 26 deletions(-) > > diff --git a/drivers/cpufreq/cpufreq_conservative.c > b/drivers/cpufreq/cpufreq_conservative.c > index c400924..7f67a75 100644 > --- a/drivers/cpufreq/cpufreq_conservative.c > +++ b/drivers/cpufreq/cpufreq_conservative.c > @@ -209,8 +209,8 @@ static ssize_t store_down_threshold(struct > dbs_data *dbs_data, const char *buf, > return count; > } > > -static ssize_t store_ignore_nice(struct dbs_data *dbs_data, const char *buf, > - size_t count) > +static ssize_t store_ignore_nice_load(struct dbs_data *dbs_data, > + const char *buf, size_t count) > { > struct cs_dbs_tuners *cs_tuners = dbs_data->tuners; > unsigned int input, j; > @@ -223,10 +223,10 @@ static ssize_t store_ignore_nice(struct dbs_data > *dbs_data, const char *buf, > if (input > 1) > input = 1; > > - if (input == cs_tuners->ignore_nice) /* nothing to do */ > + if (input == cs_tuners->ignore_nice_load) /* nothing to do */ > return count; > > - cs_tuners->ignore_nice = input; > + cs_tuners->ignore_nice_load = input; > > /* we need to re-evaluate prev_cpu_idle */ > for_each_online_cpu(j) { > @@ -234,7 +234,7 @@ static ssize_t store_ignore_nice(struct dbs_data > *dbs_data, const char *buf, > dbs_info = &per_cpu(cs_cpu_dbs_info, j); > dbs_info->cdbs.prev_cpu_idle = get_cpu_idle_time(j, > &dbs_info->cdbs.prev_cpu_wall, 0); > - if (cs_tuners->ignore_nice) > + if (cs_tuners->ignore_nice_load) > dbs_info->cdbs.prev_cpu_nice = > kcpustat_cpu(j).cpustat[CPUTIME_NICE]; > } > @@ -267,7 +267,7 @@ show_store_one(cs, sampling_rate); > show_store_one(cs, sampling_down_factor); > show_store_one(cs, up_threshold); > show_store_one(cs, down_threshold); > -show_store_one(cs, ignore_nice); > +show_store_one(cs, ignore_nice_load); > show_store_one(cs, freq_step); > declare_show_sampling_rate_min(cs); > > @@ -275,7 +275,7 @@ gov_sys_pol_attr_rw(sampling_rate); > gov_sys_pol_attr_rw(sampling_down_factor); > gov_sys_pol_attr_rw(up_threshold); > gov_sys_pol_attr_rw(down_threshold); > -gov_sys_pol_attr_rw(ignore_nice); > +gov_sys_pol_attr_rw(ignore_nice_load); > gov_sys_pol_attr_rw(freq_step); > gov_sys_pol_attr_ro(sampling_rate_min); > > @@ -285,7 +285,7 @@ static struct attribute *dbs_attributes_gov_sys[] = { > &sampling_down_factor_gov_sys.attr, > &up_threshold_gov_sys.attr, > &down_threshold_gov_sys.attr, > - &ignore_nice_gov_sys.attr, > + &ignore_nice_load_gov_sys.attr, > &freq_step_gov_sys.attr, > NULL > }; > @@ -301,7 +301,7 @@ static struct attribute *dbs_attributes_gov_pol[] = { > &sampling_down_factor_gov_pol.attr, > &up_threshold_gov_pol.attr, > &down_threshold_gov_pol.attr, > - &ignore_nice_gov_pol.attr, > + &ignore_nice_load_gov_pol.attr, > &freq_step_gov_pol.attr, > NULL > }; > @@ -326,7 +326,7 @@ static int cs_init(struct dbs_data *dbs_data) > tuners->up_threshold = DEF_FREQUENCY_UP_THRESHOLD; > tuners->down_threshold = DEF_FREQUENCY_DOWN_THRESHOLD; > tuners->sampling_down_factor = DEF_SAMPLING_DOWN_FACTOR; > - tuners->ignore_nice = 0; > + tuners->ignore_nice_load = 0; > tuners->freq_step = DEF_FREQUENCY_STEP; > > dbs_data->tuners = tuners; > diff --git a/drivers/cpufreq/cpufreq_governor.c > b/drivers/cpufreq/cpufreq_governor.c > index 556064e..8742736 100644 > --- a/drivers/cpufreq/cpufreq_governor.c > +++ b/drivers/cpufreq/cpufreq_governor.c > @@ -41,9 +41,9 @@ void dbs_check_cpu(struct dbs_data *dbs_data, int cpu) > unsigned int j; > > if (dbs_data->cdata->governor == GOV_ONDEMAND) > - ignore_nice = od_tuners->ignore_nice; > + ignore_nice = od_tuners->ignore_nice_load; > else > - ignore_nice = cs_tuners->ignore_nice; > + ignore_nice = cs_tuners->ignore_nice_load; > > policy = cdbs->cur_policy; > > @@ -284,12 +284,12 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy, > cs_tuners = dbs_data->tuners; > cs_dbs_info = dbs_data->cdata->get_cpu_dbs_info_s(cpu); > sampling_rate = cs_tuners->sampling_rate; > - ignore_nice = cs_tuners->ignore_nice; > + ignore_nice = cs_tuners->ignore_nice_load; > } else { > od_tuners = dbs_data->tuners; > od_dbs_info = dbs_data->cdata->get_cpu_dbs_info_s(cpu); > sampling_rate = od_tuners->sampling_rate; > - ignore_nice = od_tuners->ignore_nice; > + ignore_nice = od_tuners->ignore_nice_load; > od_ops = dbs_data->cdata->gov_ops; > io_busy = od_tuners->io_is_busy; > } > diff --git a/drivers/cpufreq/cpufreq_governor.h > b/drivers/cpufreq/cpufreq_governor.h > index 264e509..a02d78b 100644 > --- a/drivers/cpufreq/cpufreq_governor.h > +++ b/drivers/cpufreq/cpufreq_governor.h > @@ -164,7 +164,7 @@ struct cs_cpu_dbs_info_s { > > /* Per policy Governers sysfs tunables */ > struct od_dbs_tuners { > - unsigned int ignore_nice; > + unsigned int ignore_nice_load; > unsigned int sampling_rate; > unsigned int sampling_down_factor; > unsigned int up_threshold; > @@ -173,7 +173,7 @@ struct od_dbs_tuners { > }; > > struct cs_dbs_tuners { > - unsigned int ignore_nice; > + unsigned int ignore_nice_load; > unsigned int sampling_rate; > unsigned int sampling_down_factor; > unsigned int up_threshold; > diff --git a/drivers/cpufreq/cpufreq_ondemand.c > b/drivers/cpufreq/cpufreq_ondemand.c > index 117278a..87f3305 100644 > --- a/drivers/cpufreq/cpufreq_ondemand.c > +++ b/drivers/cpufreq/cpufreq_ondemand.c > @@ -372,8 +372,8 @@ static ssize_t store_sampling_down_factor(struct > dbs_data *dbs_data, > return count; > } > > -static ssize_t store_ignore_nice(struct dbs_data *dbs_data, const char *buf, > - size_t count) > +static ssize_t store_ignore_nice_load(struct dbs_data *dbs_data, > + const char *buf, size_t count) > { > struct od_dbs_tuners *od_tuners = dbs_data->tuners; > unsigned int input; > @@ -388,10 +388,10 @@ static ssize_t store_ignore_nice(struct dbs_data > *dbs_data, const char *buf, > if (input > 1) > input = 1; > > - if (input == od_tuners->ignore_nice) { /* nothing to do */ > + if (input == od_tuners->ignore_nice_load) { /* nothing to do */ > return count; > } > - od_tuners->ignore_nice = input; > + od_tuners->ignore_nice_load = input; > > /* we need to re-evaluate prev_cpu_idle */ > for_each_online_cpu(j) { > @@ -399,7 +399,7 @@ static ssize_t store_ignore_nice(struct dbs_data > *dbs_data, const char *buf, > dbs_info = &per_cpu(od_cpu_dbs_info, j); > dbs_info->cdbs.prev_cpu_idle = get_cpu_idle_time(j, > &dbs_info->cdbs.prev_cpu_wall, od_tuners->io_is_busy); > - if (od_tuners->ignore_nice) > + if (od_tuners->ignore_nice_load) > dbs_info->cdbs.prev_cpu_nice = > kcpustat_cpu(j).cpustat[CPUTIME_NICE]; > > @@ -430,7 +430,7 @@ show_store_one(od, sampling_rate); > show_store_one(od, io_is_busy); > show_store_one(od, up_threshold); > show_store_one(od, sampling_down_factor); > -show_store_one(od, ignore_nice); > +show_store_one(od, ignore_nice_load); > show_store_one(od, powersave_bias); > declare_show_sampling_rate_min(od); > > @@ -438,7 +438,7 @@ gov_sys_pol_attr_rw(sampling_rate); > gov_sys_pol_attr_rw(io_is_busy); > gov_sys_pol_attr_rw(up_threshold); > gov_sys_pol_attr_rw(sampling_down_factor); > -gov_sys_pol_attr_rw(ignore_nice); > +gov_sys_pol_attr_rw(ignore_nice_load); > gov_sys_pol_attr_rw(powersave_bias); > gov_sys_pol_attr_ro(sampling_rate_min); > > @@ -447,7 +447,7 @@ static struct attribute *dbs_attributes_gov_sys[] = { > &sampling_rate_gov_sys.attr, > &up_threshold_gov_sys.attr, > &sampling_down_factor_gov_sys.attr, > - &ignore_nice_gov_sys.attr, > + &ignore_nice_load_gov_sys.attr, > &powersave_bias_gov_sys.attr, > &io_is_busy_gov_sys.attr, > NULL > @@ -463,7 +463,7 @@ static struct attribute *dbs_attributes_gov_pol[] = { > &sampling_rate_gov_pol.attr, > &up_threshold_gov_pol.attr, > &sampling_down_factor_gov_pol.attr, > - &ignore_nice_gov_pol.attr, > + &ignore_nice_load_gov_pol.attr, > &powersave_bias_gov_pol.attr, > &io_is_busy_gov_pol.attr, > NULL > @@ -509,7 +509,7 @@ static int od_init(struct dbs_data *dbs_data) > } > > tuners->sampling_down_factor = DEF_SAMPLING_DOWN_FACTOR; > - tuners->ignore_nice = 0; > + tuners->ignore_nice_load = 0; > tuners->powersave_bias = default_powersave_bias; > tuners->io_is_busy = should_io_be_busy(); -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html