Message ID | 20231009103621.374412-1-vincent.guittot@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | consolidate and cleanup CPU capacity | expand |
* Vincent Guittot <vincent.guittot@linaro.org> wrote: > Remove struct rq cpu_capacity_orig field and use arch_scale_cpu_capacity() > instead. > > Scheduler uses 3 methods to get access to the CPU's max compute capacity: > - arch_scale_cpu_capacity(cpu) which is the default way to get CPU's capacity. > - cpu_capacity_orig field which is periodically updated with > arch_scale_cpu_capacity(). > - capacity_orig_of(cpu) which encapsulates rq->cpu_capacity_orig. > > There is no real need to save the value returned by arch_scale_cpu_capacity() > in struct rq. arch_scale_cpu_capacity() returns: > - either a per_cpu variable. > - or a const value for systems which have only one capacity. > > Remove cpu_capacity_orig and use arch_scale_cpu_capacity() everywhere. > > No functional changes. > > some tests of Arm64 > small SMP device (hikey): no noticeable changes > HMP device (RB5): hackbench shows minor improvement (1-2%) > large smp (thx2): hackbench and tbench shows minor improvement (1%) > > Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> > Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com> > > --- > Documentation/scheduler/sched-capacity.rst | 13 +++++++------ > kernel/sched/core.c | 2 +- > kernel/sched/cpudeadline.c | 2 +- > kernel/sched/deadline.c | 4 ++-- > kernel/sched/fair.c | 18 ++++++++---------- > kernel/sched/rt.c | 2 +- > kernel/sched/sched.h | 6 ------ > kernel/sched/topology.c | 7 +++++-- > 8 files changed, 25 insertions(+), 29 deletions(-) I've applied patch #1 to tip:sched/core, thanks! Ingo
On 10/9/23 11:36, Vincent Guittot wrote: > This is the 1st part of consolidating how the max compute capacity is > used in the scheduler and how we calculate the frequency for a level of > utilization. > > Fix some unconsistancy when computing frequency for an utilization. There > can be a mismatch between energy model and schedutil. > > Next step will be to make a difference between the original > max compute capacity of a CPU and what is currently available when > there is a capping applying forever (i.e. seconds or more). > > I have tested the patches apart from the last CPPC because the platform didn't have that. The EAS is working OK, so feel free to add: Tested-by: Lukasz Luba <lukasz.luba@arm.com> apart from the patch 6/6 - with the cppc changes Regards, Lukasz