.attrs = pstate_global_attributes,
 };
 
+static bool amd_pstate_acpi_pm_profile_server(void)
+{
+       switch (acpi_gbl_FADT.preferred_profile) {
+       case PM_ENTERPRISE_SERVER:
+       case PM_SOHO_SERVER:
+       case PM_PERFORMANCE_SERVER:
+               return true;
+       }
+       return false;
+}
+
+static bool amd_pstate_acpi_pm_profile_undefined(void)
+{
+       if (acpi_gbl_FADT.preferred_profile == PM_UNSPECIFIED)
+               return true;
+       if (acpi_gbl_FADT.preferred_profile >= NR_PM_PROFILES)
+               return true;
+       return false;
+}
+
 static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
 {
        int min_freq, max_freq, nominal_freq, lowest_nonlinear_freq, ret;
        policy->max = policy->cpuinfo.max_freq;
 
        /*
-        * Set the policy to powersave to provide a valid fallback value in case
+        * Set the policy to provide a valid fallback value in case
         * the default cpufreq governor is neither powersave nor performance.
         */
-       policy->policy = CPUFREQ_POLICY_POWERSAVE;
+       if (amd_pstate_acpi_pm_profile_server() ||
+           amd_pstate_acpi_pm_profile_undefined())
+               policy->policy = CPUFREQ_POLICY_PERFORMANCE;
+       else
+               policy->policy = CPUFREQ_POLICY_POWERSAVE;
 
        if (boot_cpu_has(X86_FEATURE_CPPC)) {
                ret = rdmsrl_on_cpu(cpudata->cpu, MSR_AMD_CPPC_REQ, &value);