This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
realtime:documentation:howto:tools:ticklesskernel [2023/08/20 11:21] costa.shul [More Information] wikipedia |
realtime:documentation:howto:tools:ticklesskernel [2023/10/03 08:20] (current) costa.shul change title |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Tickless Kernel ====== | + | ====== Dynticks or Tickless kernel or nohz ====== |
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. | 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 [[https://elixir.bootlin.com/linux/latest/A/ident/CONFIG_HZ|100-1000 HZ]] on each CPU or core. | + | 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. | The kernel serviced this interrupt regardless of the power state of the CPU. | ||
- | This mode is enabled by option [[https://elixir.bootlin.com/linux/latest/A/ident/CONFIG_HZ_PERIODIC|CONFIG_HZ_PERIODIC]]. | + | This mode is enabled by option ''CONFIG_HZ_PERIODIC''. |
- | [[https://elixir.bootlin.com/linux/latest/A/ident/CONFIG_NO_HZ_IDLE|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. | + | ''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, enabled by [[https://elixir.bootlin.com/linux/latest/A/ident/CONFIG_NO_HZ_FULL|CONFIG_NO_HZ_FULL]], allows it to schedule without a periodic timer tick. | + | Full dynticks system (tickless) mode is enabled by ''CONFIG_NO_HZ_FULL'' and activated by [[https://docs.kernel.org/admin-guide/kernel-parameters.html#cpu-lists|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 ===== | + | |
+ | More information: | ||
* [[https://www.suse.com/c/cpu-isolation-full-dynticks-part2/|CPU Isolation – Full dynticks internals]] | * [[https://www.suse.com/c/cpu-isolation-full-dynticks-part2/|CPU Isolation – Full dynticks internals]] | ||
* [[https://en.wikipedia.org/wiki/Tickless_kernel|Tickless kernel]] | * [[https://en.wikipedia.org/wiki/Tickless_kernel|Tickless kernel]] | ||
+ | * [[https://docs.kernel.org/timers/no_hz.html|NO_HZ: Reducing Scheduling-Clock Ticks]] | ||
+ | * [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/kernel/Kconfig.hz|kernel/Kconfig.hz]] | ||
+ | * [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/kernel/time/Kconfig|kernel/time/Kconfig]] |