Kernel boot parameters¶
This document lists several kernel boot parameters that are useful for tuning Real-time Ubuntu.
irqaffinity¶
The irqaffinity
kernel parameter sets the default IRQ affinity mask, which defines the CPUs responsible for handling interrupt requests.
It requires a cpu-list formatted value.
For example, irqaffinity=0-3
means that interrupts will be handled by CPUs 0 through 3.
The current default IRQ affinity mask can be checked in the /proc/irq/default_smp_affinity
file.
The information in this file is presented in a hexadecimal representation of the binary CPU mask.
Note that irqaffinity
is a symmetric multiprocessing (SMP) parameter, and therefore it does not apply to systems with only one CPU.
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.
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.
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.