cpufreq: cppc: Add support for frequency invariance
From: | Viresh Kumar <viresh.kumar-AT-linaro.org> | |
To: | Ionela Voinescu <ionela.voinescu-AT-arm.com>, Rafael Wysocki <rjw-AT-rjwysocki.net>, Catalin Marinas <catalin.marinas-AT-arm.com>, Will Deacon <will-AT-kernel.org> | |
Subject: | [PATCH V3 0/2] cpufreq: cppc: Add support for frequency invariance | |
Date: | Thu, 28 Jan 2021 16:18:54 +0530 | |
Message-ID: | <cover.1611829953.git.viresh.kumar@linaro.org> | |
Cc: | Viresh Kumar <viresh.kumar-AT-linaro.org>, Vincent Guittot <vincent.guittot-AT-linaro.org>, linux-kernel-AT-vger.kernel.org, linux-arm-kernel-AT-lists.infradead.org, linux-pm-AT-vger.kernel.org, Sudeep Holla <sudeep.holla-AT-arm.com>, Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org> | |
Archive-link: | Article |
Hello, CPPC cpufreq driver is used for ARM servers and this patch series tries to provide counter-based frequency invariance support for them in the absence for architecture specific counters (like AMUs). This is tested with some hacks, as I didn't have access to the right hardware, on the ARM64 hikey board to check the overall functionality and that works fine. Vincent/Ionela, it would be nice if you guys can give this a shot on some real hardware where counters work. This is based of pm/linux-next (need some stuff from the arm64 tree). These patches should get merged via the arm64 tree only for the same reason. Changes since V2: - Not sending as an RFC anymore. - Several renames, reordering of code in 1/2 based on Ionela's comments. - Several rebase changes for 2/2. - The freq_scale calculations are optimized a bit. - Better overall commenting and commit logs. Changes since V1: - The interface for setting the callbacks is improved, so different parts looking to provide their callbacks don't need to think about each other. - Moved to per-cpu storage for storing the callback related data, AMU counters have higher priority with this. -- viresh Viresh Kumar (2): topology: Allow multiple entities to provide sched_freq_tick() callback cpufreq: cppc: Add support for frequency invariance arch/arm64/include/asm/topology.h | 10 +- arch/arm64/kernel/topology.c | 89 +++++++-------- drivers/base/arch_topology.c | 56 +++++++++- drivers/cpufreq/cppc_cpufreq.c | 179 ++++++++++++++++++++++++++++-- include/linux/arch_topology.h | 15 ++- kernel/sched/core.c | 1 + 6 files changed, 274 insertions(+), 76 deletions(-) -- 2.25.0.rc1.19.g042ed3e048af