Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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.


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.