Re: [PATCH 10/39] sched: Factor out update_other_load_avgs() from __update_blocked_others()

Tejun Heo
2024-06-26T20:49:24Z

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