linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86: Do not override performance EPB MSR value on servers
@ 2019-04-08  8:46 Thomas Renninger
  2019-04-08  8:51 ` Thomas Renninger
  2019-04-16 21:31 ` Rafael J. Wysocki
  0 siblings, 2 replies; 3+ messages in thread
From: Thomas Renninger @ 2019-04-08  8:46 UTC (permalink / raw)
  To: Rafael Wysocki; +Cc: linux-pm

It is about this kernel message showing up on quite a lot servers:
[    0.072652] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    0.076003] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)

With this patch the EPB value is not overridden anymore on systems
which expose themselves as appliance or enterprise server via ACPI
perferred profile variable.

Signed-off-by: trenn@suse.de


Index: perf_bias_acpi_server_only/arch/x86/kernel/cpu/intel_epb.c
===================================================================
--- perf_bias_acpi_server_only.orig/arch/x86/kernel/cpu/intel_epb.c	2019-04-05 14:43:04.280222577 +0200
+++ perf_bias_acpi_server_only/arch/x86/kernel/cpu/intel_epb.c	2019-04-08 10:01:26.029278425 +0200
@@ -19,6 +19,8 @@
 #include <asm/cpufeature.h>
 #include <asm/msr.h>
 
+#include <linux/acpi.h>
+
 /**
  * DOC: overview
  *
@@ -89,7 +91,10 @@ static void intel_epb_restore(void)
 		 * ('normal').
 		 */
 		val = epb & EPB_MASK;
-		if (val == ENERGY_PERF_BIAS_PERFORMANCE) {
+		if (acpi_gbl_FADT.preferred_profile == PM_ENTERPRISE_SERVER ||
+		    acpi_gbl_FADT.preferred_profile == PM_PERFORMANCE_SERVER) {
+			/* Keep performance setting on servers */
+		} else	if (val == ENERGY_PERF_BIAS_PERFORMANCE) {
 			val = ENERGY_PERF_BIAS_NORMAL;
 			pr_warn_once("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n");
 		}


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] x86: Do not override performance EPB MSR value on servers
  2019-04-08  8:46 [PATCH] x86: Do not override performance EPB MSR value on servers Thomas Renninger
@ 2019-04-08  8:51 ` Thomas Renninger
  2019-04-16 21:31 ` Rafael J. Wysocki
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Renninger @ 2019-04-08  8:51 UTC (permalink / raw)
  To: Rafael Wysocki; +Cc: linux-pm

On Monday, April 8, 2019 10:46:46 AM CEST Thomas Renninger wrote:
> It is about this kernel message showing up on quite a lot servers:
> [    0.072652] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
> [    0.076003] ENERGY_PERF_BIAS: View and update with
> x86_energy_perf_policy(8)
> 
> With this patch the EPB value is not overridden anymore on systems
> which expose themselves as appliance or enterprise server via ACPI
> perferred profile variable.
> 
> Signed-off-by: trenn@suse.de

The patch has successfully been tested on top of Rafeals latest EPB
fixes:
[PATCH 0/2] PM / arch: x86: MSR_IA32_ENERGY_PERF_BIAS handling fixes and sysfs 
i/f

EPB value is now successfully and correctly restored after CPU off-/onlining
It can be set back to performance value if kernel set it to normal and this
value also survives CPU off-/onlining.

Still the kernel should not override the performance value on servers, so
it would be nice to see the patch applied.
Once applied, I may send a patch based on code before EPB changes similar to 
this for stable kernels. There it is even more urgent, due to the wrong
unconditional setting to "normal" value after CPU off-/onlining.

I tested the patch to make sure the preferred value is considered and it
works.

        Thomas

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] x86: Do not override performance EPB MSR value on servers
  2019-04-08  8:46 [PATCH] x86: Do not override performance EPB MSR value on servers Thomas Renninger
  2019-04-08  8:51 ` Thomas Renninger
@ 2019-04-16 21:31 ` Rafael J. Wysocki
  1 sibling, 0 replies; 3+ messages in thread
From: Rafael J. Wysocki @ 2019-04-16 21:31 UTC (permalink / raw)
  To: Thomas Renninger; +Cc: Rafael Wysocki, Linux PM

On Mon, Apr 8, 2019 at 10:46 AM Thomas Renninger <trenn@suse.de> wrote:
>
> It is about this kernel message showing up on quite a lot servers:
> [    0.072652] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
> [    0.076003] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
>
> With this patch the EPB value is not overridden anymore on systems
> which expose themselves as appliance or enterprise server via ACPI
> perferred profile variable.
>
> Signed-off-by: trenn@suse.de
>
>
> Index: perf_bias_acpi_server_only/arch/x86/kernel/cpu/intel_epb.c
> ===================================================================
> --- perf_bias_acpi_server_only.orig/arch/x86/kernel/cpu/intel_epb.c     2019-04-05 14:43:04.280222577 +0200
> +++ perf_bias_acpi_server_only/arch/x86/kernel/cpu/intel_epb.c  2019-04-08 10:01:26.029278425 +0200
> @@ -19,6 +19,8 @@
>  #include <asm/cpufeature.h>
>  #include <asm/msr.h>
>
> +#include <linux/acpi.h>
> +
>  /**
>   * DOC: overview
>   *
> @@ -89,7 +91,10 @@ static void intel_epb_restore(void)
>                  * ('normal').
>                  */
>                 val = epb & EPB_MASK;
> -               if (val == ENERGY_PERF_BIAS_PERFORMANCE) {
> +               if (acpi_gbl_FADT.preferred_profile == PM_ENTERPRISE_SERVER ||
> +                   acpi_gbl_FADT.preferred_profile == PM_PERFORMANCE_SERVER) {
> +                       /* Keep performance setting on servers */
> +               } else  if (val == ENERGY_PERF_BIAS_PERFORMANCE) {

I would write this as

if (val == ENERGY_PERF_BIAS_PERFORMANCE &&
    acpi_gbl_FADT.preferred_profile != PM_ENTERPRISE_SERVER &&
    acpi_gbl_FADT.preferred_profile != PM_PERFORMANCE_SERVER) {

but overall the approach is not particularly objectionable.

>                         val = ENERGY_PERF_BIAS_NORMAL;
>                         pr_warn_once("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n");
>                 }
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-04-16 21:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-08  8:46 [PATCH] x86: Do not override performance EPB MSR value on servers Thomas Renninger
2019-04-08  8:51 ` Thomas Renninger
2019-04-16 21:31 ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).