[Xenial][PATCH 1/1] cpufreq: intel_pstate: Enable HWP by default

Colin Ian King colin.king at canonical.com
Thu Mar 23 18:00:13 UTC 2017


On 23/03/17 17:57, Robert Hooker wrote:
> On Thu, Mar 23, 2017 at 1:33 AM, Kai-Heng Feng
> <kai.heng.feng at canonical.com> wrote:
>> From: Srinivas Pandruvada <srinivas.pandruvada at linux.intel.com>
>>
>> BugLink: https://bugs.launchpad.net/bugs/1674390
>>
>> If the processor supports HWP, enable it by default without checking
>> for the cpu model. This will allow to enable HWP in all supported
>> processors without driver change.
>>
>> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada at linux.intel.com>
>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
>> (cherry picked from commit 7791e4aa59ad724e0b4c8b4dea547a5735108972)
>> Signed-off-by: Kai-Heng Feng <kai.heng.feng at canonical.com>
>> ---
>>  drivers/cpufreq/intel_pstate.c | 34 ++++++++++++++++++++++------------
>>  1 file changed, 22 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
>> index 7ff8b15a3422..88728d997088 100644
>> --- a/drivers/cpufreq/intel_pstate.c
>> +++ b/drivers/cpufreq/intel_pstate.c
>> @@ -1361,6 +1361,11 @@ static inline bool intel_pstate_platform_pwr_mgmt_exists(void) { return false; }
>>  static inline bool intel_pstate_has_acpi_ppc(void) { return false; }
>>  #endif /* CONFIG_ACPI */
>>
>> +static const struct x86_cpu_id hwp_support_ids[] __initconst = {
>> +       { X86_VENDOR_INTEL, 6, X86_MODEL_ANY, X86_FEATURE_HWP },
>> +       {}
>> +};
>> +
>>  static int __init intel_pstate_init(void)
>>  {
>>         int cpu, rc = 0;
>> @@ -1370,17 +1375,16 @@ static int __init intel_pstate_init(void)
>>         if (no_load)
>>                 return -ENODEV;
>>
>> +       if (x86_match_cpu(hwp_support_ids) && !no_hwp) {
>> +               copy_cpu_funcs(&core_params.funcs);
>> +               hwp_active++;
>> +               goto hwp_cpu_matched;
>> +       }
>> +
>>         id = x86_match_cpu(intel_pstate_cpu_ids);
>>         if (!id)
>>                 return -ENODEV;
>>
>> -       /*
>> -        * The Intel pstate driver will be ignored if the platform
>> -        * firmware has its own power management modes.
>> -        */
>> -       if (intel_pstate_platform_pwr_mgmt_exists())
>> -               return -ENODEV;
>> -
>>         cpu_def = (struct cpu_defaults *)id->driver_data;
>>
>>         copy_pid_params(&cpu_def->pid_policy);
>> @@ -1389,17 +1393,20 @@ static int __init intel_pstate_init(void)
>>         if (intel_pstate_msrs_not_valid())
>>                 return -ENODEV;
>>
>> +hwp_cpu_matched:
>> +       /*
>> +        * The Intel pstate driver will be ignored if the platform
>> +        * firmware has its own power management modes.
>> +        */
>> +       if (intel_pstate_platform_pwr_mgmt_exists())
>> +               return -ENODEV;
>> +
>>         pr_info("Intel P-state driver initializing.\n");
>>
>>         all_cpu_data = vzalloc(sizeof(void *) * num_possible_cpus());
>>         if (!all_cpu_data)
>>                 return -ENOMEM;
>>
>> -       if (static_cpu_has_safe(X86_FEATURE_HWP) && !no_hwp) {
>> -               pr_info("intel_pstate: HWP enabled\n");
>> -               hwp_active++;
>> -       }
>> -
>>         if (!hwp_active && hwp_only)
>>                 goto out;
>>
>> @@ -1410,6 +1417,9 @@ static int __init intel_pstate_init(void)
>>         intel_pstate_debug_expose_params();
>>         intel_pstate_sysfs_expose_params();
>>
>> +       if (hwp_active)
>> +               pr_info("intel_pstate: HWP enabled\n");
>> +
>>         return rc;
>>  out:
>>         get_online_cpus();
>> --
>> 2.12.0
>>
>>
>> --
>> kernel-team mailing list
>> kernel-team at lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
> 
> Acked-By: Robert Hooker <robert.hooker at canonical.com>
> 
Acked-by: Colin Ian King <colin.king at canonical.com>




More information about the kernel-team mailing list