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

Robert Hooker sarvatt at ubuntu.com
Thu Mar 23 17:57:35 UTC 2017


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>




More information about the kernel-team mailing list