cpufreq: intel_pstate: Enable PPC enforcement for servers
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Wed, 27 Apr 2016 22:48:08 +0000 (15:48 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 27 Apr 2016 23:01:39 +0000 (01:01 +0200)
For platforms which are controlled via remove node manager, enable _PPC by
default. These platforms are mostly categorized as enterprise server or
performance servers. These platforms needs to go through some
certifications tests, which tests control via _PPC.
The relative risk of enabling by default is  low as this is is less likely
that these systems have broken _PSS table.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/kernel-parameters.txt
drivers/cpufreq/intel_pstate.c

index 31c094fb1141e7048bddf7ff498af0a66b1903ca..1cffa3f2473218a60c97f5e088116bfc35e70e43 100644 (file)
@@ -1662,7 +1662,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        Only load intel_pstate on systems which support
                        hardware P state control (HWP) if available.
                support_acpi_ppc
-                       Enforce ACPI _PPC performance limits.
+                       Enforce ACPI _PPC performance limits. If the Fixed ACPI
+                       Description Table, specifies preferred power management
+                       profile as "Enterprise Server" or "Performance Server",
+                       then this feature is turned on by default.
 
        intremap=       [X86-64, Intel-IOMMU]
                        on      enable Interrupt Remapping (default)
index 31f6ffe0cf1022c2bf2ef27865aa0c1be95b4b48..a0823e84ceca147564a54897ead2e5b505388c31 100644 (file)
@@ -347,6 +347,16 @@ static struct perf_limits *limits = &powersave_limits;
 #endif
 
 #ifdef CONFIG_ACPI
+
+static bool intel_pstate_get_ppc_enable_status(void)
+{
+       if (acpi_gbl_FADT.preferred_profile == PM_ENTERPRISE_SERVER ||
+           acpi_gbl_FADT.preferred_profile == PM_PERFORMANCE_SERVER)
+               return true;
+
+       return acpi_ppc;
+}
+
 /*
  * The max target pstate ratio is a 8 bit value in both PLATFORM_INFO MSR and
  * in TURBO_RATIO_LIMIT MSR, which pstate driver stores in max_pstate and
@@ -370,7 +380,7 @@ static void intel_pstate_init_acpi_perf_limits(struct cpufreq_policy *policy)
        int ret;
        int i;
 
-       if (!acpi_ppc)
+       if (!intel_pstate_get_ppc_enable_status())
                return;
 
        cpu = all_cpu_data[policy->cpu];