kernel_samsung_a53x/kernel/sched
Vincent Guittot fe0cdb4e3f sched/fair: Remove update of blocked load from newidle_balance
[ Upstream commit 0826530de3cbdc89e60a89e86def94a5f0fc81ca ]

newidle_balance runs with both preempt and irq disabled which prevent
local irq to run during this period. The duration for updating the
blocked load of CPUs varies according to the number of CPU cgroups
with non-decayed load and extends this critical period to an uncontrolled
level.

Remove the update from newidle_balance and trigger a normal ILB that
will take care of the update instead.

This reduces the IRQ latency from O(nr_cgroups * nr_nohz_cpus) to
O(nr_cgroups).

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
Link: https://lkml.kernel.org/r/20210224133007.28644-2-vincent.guittot@linaro.org
Stable-dep-of: ff47a0acfcce ("sched/fair: Check idle_cpu() before need_resched() to detect ilb CPU turning busy")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-17 13:24:33 +01:00
..
ems kernel: sched: ems: drop usage of SCHED_FEAT 2024-11-19 17:52:14 +01:00
autogroup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
autogroup.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
clock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
completion.c sched/completion: Expose wait_for_common*() to drivers 2024-11-17 17:45:08 +01:00
core.c sched/core: Remove the unnecessary need_resched() check in nohz_csd_func() 2024-12-17 13:24:33 +01:00
cpuacct.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpudeadline.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpudeadline.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpufreq.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpufreq_schedutil.c schedutil: Allow CPU frequency changes to be amended before they're set 2024-11-19 18:06:02 +01:00
cpupri.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpupri.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cputime.c sched/cputime: Fix mul_u64_u64_div_u64() precision for cputime 2024-11-23 23:20:24 +01:00
deadline.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fair.c sched/fair: Remove update of blocked load from newidle_balance 2024-12-17 13:24:33 +01:00
features.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idle.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isolation.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
loadavg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
membarrier.c sched/membarrier: reduce the ability to hammer on sys_membarrier 2024-11-18 12:13:39 +01:00
pelt.c kernel: sched: Provide more PELT half-life options 2024-11-17 17:41:17 +01:00
pelt.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
psi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rt.c sched/rt: Disallow writing invalid values to sched_rt_period_us 2024-11-18 22:25:32 +01:00
sched-pelt.h kernel: sched: Provide more PELT half-life options 2024-11-17 17:41:17 +01:00
sched.h sched/fair: set_load_weight() must also call reweight_task() for SCHED_IDLE tasks 2024-11-23 23:20:12 +01:00
sec_mpam.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sec_mpam_cpbm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sec_mpam_sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sec_mpam_sysfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
smp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stats.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stats.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stop_task.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swait.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
topology.c sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level 2024-11-19 12:27:00 +01:00
wait.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wait_bit.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00