[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