For a long time Linux kernel have a periodic interrupt that makes the kernel scheduler to balance and schedule threads running among the CPU's.
This interrupt is known as the timer tick and it is generated at a fixed rate 100-1000 HZ on each CPU or core.
The kernel serviced this interrupt regardless of the power state of the CPU.
This mode is enabled by option CONFIG_HZ_PERIODIC
.
CONFIG_NO_HZ_IDLE
mode allows the CPU not to be disturbed when idle and can save power because it just wakes up the CPU when needed to service the timer.
Full dynticks system (tickless) mode is enabled by CONFIG_NO_HZ_FULL
and activated by nohz_full boot parameter.
The kernel adaptively tries to shutdown the tick whenever possible, even when the CPU is running tasks with function tick_nohz_full_cpu
.
More information: