На странице man ksoftirqd
- поток ядра для каждого процессора, который запускается, когда машина находится под большой нагрузкой программных прерываний.
Вы можете немного изменить настройки, определив, какой процессор подхватывает определенное прерывание. Вы делаете это, изменяя содержимое /proc/irq/$interrupt_number/smp_affinity
. Вы можете получить список прерываний и их значение, выполнив:
cat /proc/interrupts
Число в smp_affinity
представляет собой растровое изображение процессора, представленное в шестнадцатеричном коде. Самый правый бит является наименее значимым. Например, моя система имеет 8 ядер. Если бы я хотел использовать только ядра 1, 3 и 4, я бы установил smp_affinity 1a
:
cpu_7 cpu_6 cpu_5 cpu_4 cpu_3 cpu_2 cpu_1 cpu_0
0 0 0 1 1 0 1 0 = 0001 1010 = 1a (in hex)
Лично я настроил любой процессор, чтобы он мог обрабатывать прерывания 29 (eth0 в моей 8-ядерной системе) с помощью:
sudo echo ff > /proc/irq/29/smp_affinity