Re: [PATCH 10/39] sched: Factor out update_other_load_avgs() from __update_blocked_others()
From: Tejun Heo
Date: Wed Jun 26 2024 - 16:49:37 EST
Hello,
On Tue, Jun 25, 2024 at 11:13:54AM +0200, Vincent Guittot wrote:
> > Hmm.... I think I saw RT's schedutil signal stuck high constantly pushing up
> > the frequency. I might be mistaken tho. I'll check again.
>
> This is used when selecting a frequency for fair tasks
When schedutil is used as the governor, sugov_get_util() provides the source
utilization information to determine the target frequency. sugov_get_util()
gets the CFS util metric from cpu_util_cfs_boost() and then runs it through
effective_cpu_util().
effective_cpu_util() does a bunch of things including adding cpu_util_irq(),
cpu_util_rt() and cpu_util_dl(), so if SCX doesn't decay these utilization
metrics, they never decay and schedutil ends up making decisions with stale
stuck-high numbers. I can easily confirm the behavior by sprinkling some
trace_printks and commenting out update_other_load_avgs() on the SCX side.
Thanks.
--
tejun