lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 28 Oct 2022 17:24:19 +0200
From:   "Rafael J. Wysocki" <rafael@...nel.org>
To:     Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>
Cc:     tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
        dave.hansen@...ux.intel.com, hpa@...or.com, rafael@...nel.org,
        len.brown@...el.com, peterz@...radead.org, x86@...nel.org,
        linux-kernel@...r.kernel.org, linux-pm@...r.kernel.org
Subject: Re: [PATCH] x86: intel_epb: Set Alder Lake N and Raptor Lake P normal EPB

On Fri, Oct 28, 2022 at 12:01 AM Srinivas Pandruvada
<srinivas.pandruvada@...ux.intel.com> wrote:
>
> Intel processors support additional software hint called EPB ("Energy
> Performance Bias") to guide the hardware heuristic of power management
> features to favor increasing dynamic performance or conserve energy
> consumption.
>
> Since this EPB hint is processor specific, the same value of hint can
> result in different behavior across generations of processors.
>
> commit 4ecc933b7d1f ("x86: intel_epb: Allow model specific normal EPB
> value")' introduced capability to update the default power up EPB
> based on the CPU model and updated the default EPB to 7 for Alder Lake
> mobile CPUs.
>
> The same change is required for other Alder Lake-N and Raptor Lake-P
> mobile CPUs as the current default of 6 results in higher uncore power
> consumption. This increase in power is related to memory clock
> frequency setting based on the EPB value.
>
> Depending on the EPB the minimum memory frequency is set by the
> firmware. At EPB = 7, the minimum memory frequency is 1/4th compared to
> EPB = 6. This results in significant power saving for idle and
> semi-idle workload on a Chrome platform.
>
> For example Change in power and performance from EPB change from 6 to 7
> on Alder Lake-N:
>
> Workload    Performance diff (%)    power diff
> ----------------------------------------------------
> VP9 FHD30       0 (FPS)         -218 mw
> Google meet     0 (FPS)         -385 mw
>
> This 200+ mw power saving is very significant for mobile platform for
> battery life and thermal reasons.
>
> But as the workload demands more memory bandwidth, the memory frequency
> will be increased very fast. There is no power savings for such busy
> workloads.
>
> For example:
>
> Workload                Performance diff (%) from EPB 6 to 7
> -------------------------------------------------------
> Speedometer 2.0         -0.8
> WebGL Aquarium 10K
> Fish                    -0.5
> Unity 3D 2018           0.2
> WebXPRT3                -0.5
>
> There are run to run variations for performance scores for
> such busy workloads. So the difference is not significant.
>
> Add a new define ENERGY_PERF_BIAS_NORMAL_POWERSAVE for EPB 7
> and use it for Alder Lake-N and Raptor Lake-P mobile CPUs.
>
> This modification is done originally by
> Jeremy Compostella <jeremy.compostella@...el.com>.
>
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>

Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>

> ---
>  arch/x86/include/asm/msr-index.h | 1 +
>  arch/x86/kernel/cpu/intel_epb.c  | 7 ++++++-
>  2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
> index 10ac52705892..a3eb4d3e70b8 100644
> --- a/arch/x86/include/asm/msr-index.h
> +++ b/arch/x86/include/asm/msr-index.h
> @@ -796,6 +796,7 @@
>  #define ENERGY_PERF_BIAS_PERFORMANCE           0
>  #define ENERGY_PERF_BIAS_BALANCE_PERFORMANCE   4
>  #define ENERGY_PERF_BIAS_NORMAL                        6
> +#define ENERGY_PERF_BIAS_NORMAL_POWERSAVE      7
>  #define ENERGY_PERF_BIAS_BALANCE_POWERSAVE     8
>  #define ENERGY_PERF_BIAS_POWERSAVE             15
>
> diff --git a/arch/x86/kernel/cpu/intel_epb.c b/arch/x86/kernel/cpu/intel_epb.c
> index fbaf12e43f41..3b8476158236 100644
> --- a/arch/x86/kernel/cpu/intel_epb.c
> +++ b/arch/x86/kernel/cpu/intel_epb.c
> @@ -204,7 +204,12 @@ static int intel_epb_offline(unsigned int cpu)
>  }
>
>  static const struct x86_cpu_id intel_epb_normal[] = {
> -       X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L, 7),
> +       X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L,
> +                                  ENERGY_PERF_BIAS_NORMAL_POWERSAVE),
> +       X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_N,
> +                                  ENERGY_PERF_BIAS_NORMAL_POWERSAVE),
> +       X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_P,
> +                                  ENERGY_PERF_BIAS_NORMAL_POWERSAVE),
>         {}
>  };
>
> --
> 2.31.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ