Kernel boot parameters

This document lists several kernel boot parameters that are useful for tuning Real-time Ubuntu.

isolcpus

The isolcpus parameter isolates CPUs from the general scheduler so that they only execute specific tasks and have a limited number of kernel threads available for execution.

This parameter accepts two types of values: flag-list and cpu-list.

When specifying a flag-list value, such as isolcpus=domain, CPUs are isolated from the general symmetric multiprocessing (SMP) balancing and scheduling algorithms.

Alternatively, isolcpus accepts cpu-list value, allowing for a list of CPUs to be isolated from the rest. For example, isolcpus=1,2,10-20 isolates CPUs 1, 2, and 10 through 20.

For further details, please refer to kernel’s command-line parameters documentation.

nohz

The nohz parameter is used for enabling/disabling dynamic ticks at boot time. Dynamic tick is a config option that enables the kernel to run without a regular time interrupt. Enabling this parameter means kernel performs less work when idle and can potentially save power.

When nohz=on is set, it enables dynamic ticks, enabling the kernel to function without regular timer interrupts.

Read more on kernel’s command-line parameters documentation.

kthread_cpus

The kthread_cpus parameter refers to the list of CPUs specifically allocated for kernel usage.

For instance, specifying kthread_cpus=0-3 means that the kernel is allowed to run kernel threads on CPUs 0 through 3.

timer_migration

The timer_migration parameter refers to an optimization technique to migrate timers from one CPU to another. In a real-time system with multiple sockets, it is beneficial to disable this parameter to ensure that the timer will stay assigned to a core.

By setting timer_migration=0 in a multi socket machine, timer migration can be disabled.

sched_rt_runtime

The sched_rt_runtime parameter refers to the duration in microseconds during which a real-time process can dominate a CPU.

Specifying sched_rt_runtime=-1 allows a process or real-time task to dominate the CPU indefinitely.