[v3,0/3] Add support for frequency invariance to AMD EPYC Zen2
mbox series

Message ID 20201110200519.18180-1-ggherdovich@suse.cz
Headers show
Series
  • Add support for frequency invariance to AMD EPYC Zen2
Related show

Message

Giovanni Gherdovich Nov. 10, 2020, 8:05 p.m. UTC
v2 at https://lore.kernel.org/lkml/20201110183054.15883-1-ggherdovich@suse.cz/

Changes wrt v2:

- "code golf" on the function function init_freq_invariance_cppc().
  Make better use of the "secondary" argument to init_freq_invariance(),
  which was introduced at b56e7d45e807 ("x86, sched: Don't enable static key
  when starting secondary CPUs") to deal with CPU hotplug.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cover Letter from v2:

v1 at https://lore.kernel.org/lkml/20201110083936.31994-1-ggherdovich@suse.cz/

Changes wrt v1:

- made initialization safe under CPU hotplug.
  The function init_freq_invariance_cppc now lets only the first caller
  into init_freq_invariance().

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cover Letter from v1:

This series adds support for frequency invariant accounting on AMD EPYC Zen2
(aka "Rome"). The first patch by Nathan lays out the foundation by querying
ACPI infrastructure for the max boost frequency of the system. Specifically,
this value is available via the CPPC machinery; the previous EPYC generation,
namely Zen aka "Naples", doesn't implement that and frequency invariance won't
be supported.

The second patch sets the estimate for freq_max to be the midpoint between
max_boost and max_P, as that works slightly better in practice.

A side effect of this series is to provide, with the invariant schedutil
governor, a suitable baseline to evaluate a (still work-in-progress)
CPPC-based cpufreq driver for the AMD platform (see
https://lore.kernel.org/lkml/cover.1562781484.git.Janakarajan.Natarajan@amd.com
if/when it will resubmitted.


Giovanni Gherdovich (2):
  x86, sched: Use midpoint of max_boost and max_P for frequency
    invariance on AMD EPYC
  x86: Print ratio freq_max/freq_base used in frequency invariance
    calculations

Nathan Fontenot (1):
  x86, sched: Calculate frequency invariance for AMD systems

 arch/x86/include/asm/topology.h |  8 ++++
 arch/x86/kernel/smpboot.c       | 79 ++++++++++++++++++++++++++++++---
 drivers/acpi/cppc_acpi.c        |  3 ++
 3 files changed, 85 insertions(+), 5 deletions(-)

Comments

Giovanni Gherdovich Nov. 12, 2020, 6:33 p.m. UTC | #1
On Tue, 2020-11-10 at 21:05 +0100, Giovanni Gherdovich wrote:
> v2 at https://lore.kernel.org/lkml/20201110183054.15883-1-ggherdovich@suse.cz/
> 
> Changes wrt v2:
> 
> - "code golf" on the function function init_freq_invariance_cppc().
>   Make better use of the "secondary" argument to init_freq_invariance(),
>   which was introduced at b56e7d45e807 ("x86, sched: Don't enable static key
>   when starting secondary CPUs") to deal with CPU hotplug.

The Intel 0-day bot reported a build error due to not guarding a part
of the patch with CONFIG_ACPI_CPPC_LIB. I've sent a v4 to fix that.

v4 at https://lore.kernel.org/lkml/20201112182614.10700-1-ggherdovich@suse.cz/
is now the most up-to-date version, ignore this one.


Thanks,
Giovanni