4.3. Tuning IRQs with Tuna
To see the list of IRQs currently running on your system, see the Monitoring tab in Tuna GUI or the
/proc/interrpupts
file. You can also use the tuna --show_irqs
command.
To specify the list of IRQs to be affected by your command, use the
--irqs
parameter:
#
tuna --irqs=irq_list --run=COMMAND
To move an interrupt to a specified CPU, use the
--move
parameter:
#
tuna --irqs=irq_list --cpus=cpu_list --move
The irq_list argument is a list of comma-separated IRQ numbers or user-name patterns.
The cpu_list argument is a list of comma-separated CPU numbers. For example,
--cpus=0,2
.
For example, to target all interrupts whose names start with
sfc1
and spread them over two CPUs:
#
tuna --irqs=sfc1\* --cpus=7,8 --move --spread
To verify the changes you set, use the
--show_irqs
parameter both before and after modifying the IRQs with the --move
parameter:
#
tuna --irqs=128 --show_irqs
# users affinity 128 iwlwifi 0,1,2,3#
tuna --irqs=128 --cpus=3 --move
#
tuna --irqs=128 --show_irqs
# users affinity 128 iwlwifi 3
This allows you to compare the state of the selected IRQs before and after your changes.
Note
Using the Tuna GUI might be more convenient in certain scenarios. Moving IRQs and threads by specifying the CPUs they are to run on can be time-consuming and difficult because it involves multiple steps of creating CPU masks. The Tuna GUI automates the process. In the Tuna GUI, you can also select threads and IRQs and drag them over the intended CPUs, which can make changing the topology easier.