Смотри также
Когда навалом процессоров… Часть 1
Когда навалом процессоров… Часть 2
Когда навалом процессоров… Часть 3

Сегодня учимся определять процессор, который обслуживает прерывания устройств ввода-вывода. Раньше пытались определять это анализируя вывод команды intrstat, но, оказывается, что есть команда pcitool.
С ее помощью можно посмотреть, какие процессора обрабатывают прерывания с каких устройств и переместить обработку прерываний на другой процессор.

Итак, определим, на какой шине pci расположены адаптеры qlc :
# cat /etc/path_to_inst |grep \"qlc\"
"/pci@400/pci@2/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0" 3 "qlc"
"/pci@400/pci@2/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0,1" 4 "qlc"
"/pci@400/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0" 7 "qlc"
"/pci@400/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0,1" 8 "qlc"
"/pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0" 2 "qlc"
"/pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0,1" 11 "qlc"
"/pci@500/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0" 5 "qlc"
"/pci@500/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0,1" 6 "qlc"
"/pci@500/pci@1/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0" 9 "qlc"
"/pci@500/pci@1/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0,1" 10 "qlc"
"/pci@700/pci@2/pci@0/pci@3/pci@0/pci@2/SUNW,qlc@0" 0 "qlc"
"/pci@700/pci@2/pci@0/pci@3/pci@0/pci@2/SUNW,qlc@0,1" 1 "qlc"

Смотрим, какой процессор обрабатывает прерывания устройств на шине /pci@600
# pcitool /pci@600 -i
ino 6 mapped to cpu aa
Device: /pci@600/pci@1/pci@0/pci@4
Driver: pcieb, instance 42
ino 7 mapped to cpu 87
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0
Driver: qlc, instance 2
ino 8 mapped to cpu 86
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0
Driver: qlc, instance 2
ino 9 mapped to cpu 85
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0,1
Driver: qlc, instance 11
ino a mapped to cpu 84
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0,1
Driver: qlc, instance 11
...

номер прерывания (ino) и номер процессора (cpu) в шеснадцатеричном виде.

Перенесем прерывание ino 7 с процессора 87 на процессор ff
# pcitool /pci@600 -i ino=7 -w cpu=ff
Interrupts on ino 7 reassigned: Old cpu:87, New cpu:ff

Ну и далее — переносим все прерывания устройств ввода-вывода на один или несколько выделенных процессоров и объединяем их в процессорный сэт ( psrset ).

Обсуждение закрыто.