On Monday, November 14, 2016 10:31:11 AM Srinivas Pandruvada wrote: > Use get_target_pstate_use_cpu_load() to calculate target P-State for > devices, which uses preferred power management profile as PM_MOBILE > in ACPI FADT. > This may help in resolving some thermal issues caused by low sustained > cpu bound workloads. The current algorithm tend to over provision in this > case as it doesn't look at the CPU busyness. > > Also included the fix from Arnd Bergmann <[email protected]> to solve compile > issue, when CONFIG_ACPI is not defined. > > Signed-off-by: Srinivas Pandruvada <[email protected]> > --- > v2: > Include fix from Arnd Bergmann for fixing compile issue > > drivers/cpufreq/intel_pstate.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c > index eb76073..9be0720 100644 > --- a/drivers/cpufreq/intel_pstate.c > +++ b/drivers/cpufreq/intel_pstate.c > @@ -1828,6 +1828,19 @@ static void __init copy_pid_params(struct > pstate_adjust_policy *policy) > pid_params.setpoint = policy->setpoint; > } > > +#ifdef CONFIG_ACPI > +static void intel_pstate_use_acpi_profile(void) > +{ > + if (acpi_gbl_FADT.preferred_profile == PM_MOBILE) > + pstate_funcs.get_target_pstate = > + get_target_pstate_use_cpu_load; > +} > +#else > +static void intel_pstate_use_acpi_profile(void) > +{ > +} > +#endif > + > static void __init copy_cpu_funcs(struct pstate_funcs *funcs) > { > pstate_funcs.get_max = funcs->get_max; > @@ -1839,6 +1852,7 @@ static void __init copy_cpu_funcs(struct pstate_funcs > *funcs) > pstate_funcs.get_vid = funcs->get_vid; > pstate_funcs.get_target_pstate = funcs->get_target_pstate; > > + intel_pstate_use_acpi_profile(); > } > > #ifdef CONFIG_ACPI >
I've replaced the original commit with this patch. Thanks, Rafael

