Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1220405 > unrolled thread
| Started by | "Rafael J. Wysocki" <rjw@rjwysocki.net> |
|---|---|
| First post | 2015-09-07 23:20 +0200 |
| Last post | 2015-09-09 04:20 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH][rfc] intel_pstate: Fix user input of min/max to legal policy region "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2015-09-07 23:20 +0200
RE: [PATCH][rfc] intel_pstate: Fix user input of min/max to legal policy region "Chen, Yu C" <yu.c.chen@intel.com> - 2015-09-09 04:20 +0200
| From | "Rafael J. Wysocki" <rjw@rjwysocki.net> |
|---|---|
| Date | 2015-09-07 23:20 +0200 |
| Subject | Re: [PATCH][rfc] intel_pstate: Fix user input of min/max to legal policy region |
| Message-ID | <q6bZw-tN-5@gated-at.bofh.it> |
On Wednesday, August 12, 2015 11:49:19 AM Chen Yu wrote: > In current code, if system is using performance policy, user can > modify the max_perf_pct to any values lower than 100: > > $ grep . /sys/devices/system/cpu/intel_pstate/m*_perf_pct > /sys/devices/system/cpu/intel_pstate/max_perf_pct:100 > /sys/devices/system/cpu/intel_pstate/min_perf_pct:100 > > $ echo 80 > /sys/devices/system/cpu/intel_pstate/max_perf_pct > > $ grep . /sys/devices/system/cpu/intel_pstate/m*_perf_pct > /sys/devices/system/cpu/intel_pstate/max_perf_pct:80 > /sys/devices/system/cpu/intel_pstate/min_perf_pct:100 > > the max_perf_pct above is lower than min_perf_pct, which > is not reasonable. > > This patch solves this problem by clamping min_perf_pct and max_perf_pct > to be strictly inside [min_policy_pct,max_policy_pct]. > > Signed-off-by: Chen Yu <yu.c.chen@intel.com> Looks reasonable to me. Kristen, any objections? > --- > drivers/cpufreq/intel_pstate.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c > index fcb929e..3702c5a 100644 > --- a/drivers/cpufreq/intel_pstate.c > +++ b/drivers/cpufreq/intel_pstate.c > @@ -423,6 +423,7 @@ static ssize_t store_max_perf_pct(struct kobject *a, struct attribute *b, > > limits.max_sysfs_pct = clamp_t(int, input, 0 , 100); > limits.max_perf_pct = min(limits.max_policy_pct, limits.max_sysfs_pct); > + limits.max_perf_pct = max(limits.min_policy_pct, limits.max_perf_pct); > limits.max_perf = div_fp(int_tofp(limits.max_perf_pct), int_tofp(100)); > > if (hwp_active) > @@ -442,6 +443,7 @@ static ssize_t store_min_perf_pct(struct kobject *a, struct attribute *b, > > limits.min_sysfs_pct = clamp_t(int, input, 0 , 100); > limits.min_perf_pct = max(limits.min_policy_pct, limits.min_sysfs_pct); > + limits.min_perf_pct = min(limits.max_policy_pct, limits.min_perf_pct); > limits.min_perf = div_fp(int_tofp(limits.min_perf_pct), int_tofp(100)); > > if (hwp_active) > @@ -985,12 +987,14 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy) > > limits.min_policy_pct = (policy->min * 100) / policy->cpuinfo.max_freq; > limits.min_policy_pct = clamp_t(int, limits.min_policy_pct, 0 , 100); > - limits.min_perf_pct = max(limits.min_policy_pct, limits.min_sysfs_pct); > - limits.min_perf = div_fp(int_tofp(limits.min_perf_pct), int_tofp(100)); > - > limits.max_policy_pct = (policy->max * 100) / policy->cpuinfo.max_freq; > limits.max_policy_pct = clamp_t(int, limits.max_policy_pct, 0 , 100); > + > + limits.min_perf_pct = max(limits.min_policy_pct, limits.min_sysfs_pct); > + limits.min_perf_pct = min(limits.max_policy_pct, limits.min_perf_pct); > + limits.min_perf = div_fp(int_tofp(limits.min_perf_pct), int_tofp(100)); > limits.max_perf_pct = min(limits.max_policy_pct, limits.max_sysfs_pct); > + limits.max_perf_pct = max(limits.min_policy_pct, limits.max_perf_pct); > limits.max_perf = div_fp(int_tofp(limits.max_perf_pct), int_tofp(100)); > > if (hwp_active) > -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | "Chen, Yu C" <yu.c.chen@intel.com> |
|---|---|
| Date | 2015-09-09 04:20 +0200 |
| Subject | RE: [PATCH][rfc] intel_pstate: Fix user input of min/max to legal policy region |
| Message-ID | <q6D9o-660-9@gated-at.bofh.it> |
| In reply to | #1220405 |
SGkgLFJhZmFlbA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFJhZmFl bCBKLiBXeXNvY2tpIFttYWlsdG86cmp3QHJqd3lzb2NraS5uZXRdDQo+IFNlbnQ6IFR1ZXNkYXks IFNlcHRlbWJlciAwOCwgMjAxNSA1OjQ3IEFNDQo+IFRvOiBDaGVuLCBZdSBDOyBrcmlzdGVuQGxp bnV4LmludGVsLmNvbQ0KPiBDYzogdmlyZXNoLmt1bWFyQGxpbmFyby5vcmc7IGxpbnV4LXBtQHZn ZXIua2VybmVsLm9yZzsgbGludXgtDQo+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IFpoYW5nLCBS dWk7IGxlbmJAa2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXVtyZmNdIGludGVsX3Bz dGF0ZTogRml4IHVzZXIgaW5wdXQgb2YgbWluL21heCB0byBsZWdhbA0KPiBwb2xpY3kgcmVnaW9u DQo+IA0KPiBPbiBXZWRuZXNkYXksIEF1Z3VzdCAxMiwgMjAxNSAxMTo0OToxOSBBTSBDaGVuIFl1 IHdyb3RlOg0KPiA+IEluIGN1cnJlbnQgY29kZSwgaWYgc3lzdGVtIGlzIHVzaW5nIHBlcmZvcm1h bmNlIHBvbGljeSwgdXNlciBjYW4NCj4gPiBtb2RpZnkgdGhlIG1heF9wZXJmX3BjdCB0byBhbnkg dmFsdWVzIGxvd2VyIHRoYW4gMTAwOg0KPiA+DQo+ID4gJCBncmVwIC4gL3N5cy9kZXZpY2VzL3N5 c3RlbS9jcHUvaW50ZWxfcHN0YXRlL20qX3BlcmZfcGN0DQo+ID4gL3N5cy9kZXZpY2VzL3N5c3Rl bS9jcHUvaW50ZWxfcHN0YXRlL21heF9wZXJmX3BjdDoxMDANCj4gPiAvc3lzL2RldmljZXMvc3lz dGVtL2NwdS9pbnRlbF9wc3RhdGUvbWluX3BlcmZfcGN0OjEwMA0KPiA+DQo+ID4gJCBlY2hvIDgw ID4gL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvaW50ZWxfcHN0YXRlL21heF9wZXJmX3BjdA0KPiA+ DQo+ID4gJCBncmVwIC4gL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvaW50ZWxfcHN0YXRlL20qX3Bl cmZfcGN0DQo+ID4gL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvaW50ZWxfcHN0YXRlL21heF9wZXJm X3BjdDo4MA0KPiA+IC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2ludGVsX3BzdGF0ZS9taW5fcGVy Zl9wY3Q6MTAwDQo+ID4NCj4gPiB0aGUgbWF4X3BlcmZfcGN0IGFib3ZlIGlzIGxvd2VyIHRoYW4g bWluX3BlcmZfcGN0LCB3aGljaCBpcyBub3QNCj4gPiByZWFzb25hYmxlLg0KPiA+DQo+ID4gVGhp cyBwYXRjaCBzb2x2ZXMgdGhpcyBwcm9ibGVtIGJ5IGNsYW1waW5nIG1pbl9wZXJmX3BjdCBhbmQN Cj4gPiBtYXhfcGVyZl9wY3QgdG8gYmUgc3RyaWN0bHkgaW5zaWRlIFttaW5fcG9saWN5X3BjdCxt YXhfcG9saWN5X3BjdF0uDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBDaGVuIFl1IDx5dS5jLmNo ZW5AaW50ZWwuY29tPg0KPiANCj4gTG9va3MgcmVhc29uYWJsZSB0byBtZS4NCj4gDQo+IEtyaXN0 ZW4sIGFueSBvYmplY3Rpb25zPw0KPiANClRoYW5rcyBmb3IgeW91ciByZXBseSEgDQpBY2NvcmRp bmcgdG8gc3VnZ2VzdGlvbiBmcm9tICBTZWlpY2hpLCB3aWxsIHJlLXNlbmQgYSBWMiB2ZXJzaW9u IHBhdGNoLA0KdG8gbWFrZSBzb21lIHVwZGF0ZS4NCg0KQmVzdCBSZWdhcmRzLA0KWXUgDQoNCg== -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web