On Wed, Jun 15, 2016 at 6:00 PM, Borislav Petkov <[email protected]> wrote: > Comments are, as always, appreciated. > > --- > From: Borislav Petkov <[email protected]> > Date: Wed, 15 Jun 2016 11:20:41 +0200 > Subject: [PATCH] Move away from msr.ko > > Take care of MSR_IA32_ENERGY_PERF_BIAS. > > Not-yet-signed-off-by: Borislav Petkov <[email protected]> [cut] > +static ssize_t > +energy_policy_pref_hint_show(struct device *dev, struct device_attribute > *attr, > + char *buf) > +{ > + u64 epb; > + > + rdmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); MSR_IA32_ENERGY_PERF_BIAS is of core scope, should we use rdmsr_on_cpu? > + > + return sprintf(buf, "%d\n", (unsigned int)(epb & 0xFULL)); > +} > + > +static ssize_t > +energy_policy_pref_hint_store(struct device *dev, struct device_attribute > *attr, > + const char *buf, size_t count) > +{ > + u32 val; > + u64 epb; > + > + if (kstrtou32(buf, 10, &val) < 0) > + return -EINVAL; > + > + if (val > 15) > + return -EINVAL; > + > + rdmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); rdmsr_on_cpu? > + > + if ((epb & 0xf) == val) > + return count; > + > + wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, (epb & ~0xFULL) | val); wrmsr_on_cpu?
thanks, Yu

