News: 0001465556

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux 6.10 Scheduler Changes Bring More Refinements

([Linux Kernel] 6 Hours Ago Kernel Scheduler)


Alongside all of the other pull requests by Ingo Molnar submitted at the start of the week during the opening of the Linux 6.10 merge window were the scheduler updates. As usual, the kernel scheduler work continues to see various tweaks and refinements to enhance its behavior.

With Linux 6.10 the code now has CPUFreq pressure feedback available to the scheduler. There's also a rework for misfit load balancing around affinity restrictions. Plus a variety of code clean-ups and other low-level alterations.

The change to misfit load balancing is around checking that a task has a fitting CPU when updating the misfit. The patch by Arm's Qais Yousef explains:

"If a misfit task is affined to a subset of the possible cpus, we need to verify that one of these cpus can fit it. Otherwise the load balancer code will continuously trigger needlessly leading the balance_interval to increase in return and eventually end up with a situation where real imbalances take a long time to address because of this impossible imbalance situation.

This can happen in Android world where it's common for background tasks to be restricted to little cores.

Similarly if we can't fit the biggest core, triggering misfit is pointless as it is the best we can ever get on this system.

To speed the search up, don't call task_fits_cpu() which will repeatedly call uclamp_eff_value() for the same task. Call util_fits_cpu() instead. And only do so when we see a cpu with higher capacity level than passed cpu_of(rq)."

See more details on the scheduler changes for Linux 6.10 via [1]the pull request that has already been merged to mainline.



[1] https://lore.kernel.org/lkml/ZkG0nxxBPB%2F03Q%2Fl@gmail.com/



Kjell

LtdJorge

clockley1

It is impossible to make anything foolproof because fools are so ingenious.