CONFIG_NO_HZ_FULL or ..._IDLE?

I have a question for the experts regarding tickless kernels.

Arch uses full tickless:

CONFIG_NO_HZ_COMMON=y
# CONFIG_NO_HZ_IDLE is not set
CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y

But the kernel documentation says:

  1. Never omit scheduling-clock ticks (CONFIG_HZ_PERIODIC=y or CONFIG_NO_HZ=n for older kernels). You normally will -not- want to choose this option.

  2. Omit scheduling-clock ticks on idle CPUs (CONFIG_NO_HZ_IDLE=y or CONFIG_NO_HZ=y for older kernels). This is the most common approach, and should be the default.

  3. Omit scheduling-clock ticks on CPUs that are either idle or that have only one runnable task (CONFIG_NO_HZ_FULL=y). Unless you are running realtime applications or certain types of HPC workloads, you will normally -not- want this option.

(from: https://docs.kernel.org/timers/no_hz.html )

Why is Arch not following this recommendation?

PS
debian and fedora have the same setting like arch. Looks like the main distributions are deviating from the kernel devs recommendation.

I found the answer. In 2021 a change was introduced to the kernel source which better explains what CONFIG_NO_HZ_FULL is actually doing.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=176b8906c399a170886ea4bad5b24763c6713d61

It says:

CONFIG_NO_HZ_FULL:
...
By default, without passing the nohz_full parameter, this behaves just
like NO_HZ_IDLE.

If you're a distro say Y.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.