From e1be34342995f2a5f7cedc1894d56efb6c40d93c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 20 Jun 2023 11:16:56 +0000 Subject: [PATCH] Revert "sched/fair: Fixes for capacity inversion detection" This reverts commit 4735b6f74f25e5e869ef1e199064c4f4cd31aa68. It breaks the Android kernel abi, so revert it. If it needs to come back later, it can do so in an abi-safe way. Bug: 161946584 Cc: Qais Yousef Change-Id: I91e7a2222c06516f4df460603cc27cf7c1106823 Signed-off-by: Greg Kroah-Hartman --- kernel/sched/fair.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 78efbb3522b8..71a493bdeacd 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8545,23 +8545,16 @@ static void update_cpu_capacity(struct sched_domain *sd, int cpu) * * Thermal pressure will impact all cpus in this perf domain * equally. */ - if (sched_energy_enabled()) { + if (static_branch_unlikely(&sched_asym_cpucapacity)) { unsigned long inv_cap = capacity_orig - thermal_load_avg(rq); - struct perf_domain *pd; + struct perf_domain *pd = rcu_dereference(rq->rd->pd); - rcu_read_lock(); - - pd = rcu_dereference(rq->rd->pd); rq->cpu_capacity_inverted = 0; for (; pd; pd = pd->next) { struct cpumask *pd_span = perf_domain_span(pd); unsigned long pd_cap_orig, pd_cap; - /* We can't be inverted against our own pd */ - if (cpumask_test_cpu(cpu_of(rq), pd_span)) - continue; - cpu = cpumask_any(pd_span); pd_cap_orig = arch_scale_cpu_capacity(cpu); @@ -8586,8 +8579,6 @@ static void update_cpu_capacity(struct sched_domain *sd, int cpu) break; } } - - rcu_read_unlock(); } trace_sched_cpu_capacity_tp(rq);