News: 0001549207

  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.16 Lands "rt_group_sched" Option, Faster Core Offlining & Scheduler Improvements

([Linux Kernel] 6 Hours Ago Linux 6.16 Scheduler)


The many scheduler updates have been merged for the Linux 6.16 kernel which include a wide assortment of different fixes and new improvements.

With the Linux 6.16 scheduler updates come better performance out of the "topology_span_sane" code. THe topology_span_sane function is used for checking for the same constraint of no partial overlaps for any two CPU sets for non-NUMA topology levels. It turns out the existing topology_span_sane code had some significant inefficiencies.

With the new topology_span_sane code, for a 16-socket server containing 1,920 CPU cores there is a significant speed-up when it comes to offlining processor cores. Taking offline a single CPU core used to consume 2.18 seconds while now with the new topology_span_sane implementation offlining a CPU core is more than halved down to a 1.01 second process.

Similarly, if offlining 959 of 1,920 CPU cores it used to consume nearly 35 minutes but now takes 16 minutes.

Separately, another notable change with the scheduler code for Linux 6.16 is adding the "rt_group_sched" command line boot option. This boot option is an alternative to the build-time CONFIG_RT_GROUP_SCHED Kconfig option. Michal Koutný explained in the patch cover letter adding the rt_group_sched option:

"Despite RT_GROUP_SCHED is only available on cgroup v1, there are still some (v1-bound) users of this feature. General purpose distros cannot enable CONFIG_RT_GROUP_SCHED easily:

- since it prevents creation of RT tasks unless RT runtime is determined and distributed into cgroup tree,

- grouping of RT threads is not what is desired by default on such systems,

- it prevents use of cgroup v2 with RT tasks.

This changeset aims at deferring the decision whether to have CONFIG_RT_GROUP_SCHED or not up until the boot time. By default RT groups are available as originally but the user can pass rt_group_sched=0 kernel cmdline parameter that disables the grouping and behavior is like with !CONFIG_RT_GROUP_SCHED (with certain runtime overhead)."

The scheduler pull also has a change for the AMD P-State driver to ensure the "asym_prefer_cpu" value is updated when the CPU core rankings change. Some AMD processors support the Preferred Core rankings be dynamically updated during run-time and now this AMD P-State change ensures the driver side work is kept up-to-date upon dynamic core ranking changes.

The Linux 6.16 scheduler updates also include other tweaks, optimizations, and fixes. More details via [1]this pull request that is already merged to Linux Git.



[1] https://lore.kernel.org/lkml/aDLnosxcYAyXpeoQ@gmail.com/



phoronix

...the Soviets have the capability to try big projects. If there is a goal,
such as when Gorbachev states that they are going to have nuclear-powered
aircraft carriers, the case is closed -- that is it. They will concentrate
on the problem, do a bad job, and later pay the price. They really don't
care what the price is.
-- Victor Belenko, MiG-25 fighter pilot who defected in 1976
"Defense Electronics", Vol 20, No. 6, pg. 100