Здравейте,
това е интересно по въпроса. Сега проверих и при мен е кофти сложен осамо на едното ядро.
http://www.alexonlinux.com/smp-affinity-and-proper-interrupt-handling-in-linux
Сега почвам прекомпилация, ще пиша пак като направя смяната на CONFIG_HOTPLUG_CPU на ОФФ.

Поздрави Иво

On 11/25/2010 09:06 PM, Момчил Иванов wrote:
Здравейте,

имам странен проблем с ядрата и драверите за LAN картите, който доста ме 
озадъчава: от /proc/interrupts

            CPU0       CPU1
  27:    8850995          0   PCI-MSI-edge      eth1

та въпросното прекъсване:
/proc/irq/27/smp_affinity: 3

Но както виждаме, прекъсванията отиват само на едно от ядрата и понеже машината 
се занимава главно с мрежов трафик, другото нищо не прави. Отбелязваме, че това 
е 2.6.34-gentoo-r12 инсталирано преди 2 дена, драйверът е e1000. Някой да знае 
как да го накарам да респектира маската и да доставя прекъсвания на 2-те ядра?

Проблемът е още по-грозен, ако имаме карта, която може да доставя 8 прекъсвания:
# cat /proc/interrupts
            CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       
CPU6       CPU7
  64: 1038482479          0          0          0          0          0         
 0          0   PCI-MSI-edge      eth0-TxRx-0
  65:         58 1004502391          0          0          0          0         
 0          0   PCI-MSI-edge      eth0-TxRx-1
  66:         87          0 1003489808          0          0          0         
 0          0   PCI-MSI-edge      eth0-TxRx-2
  67:        100          0          0 1003926234          0          0         
 0          0   PCI-MSI-edge      eth0-TxRx-3
  68:         70          0          0          0  998579451          0         
 0          0   PCI-MSI-edge      eth0-TxRx-4
  69:         97          0          0          0          0  999601703         
 0          0   PCI-MSI-edge      eth0-TxRx-5
  70:         83          0          0          0          0          0 
1019740358          0   PCI-MSI-edge      eth0-TxRx-6
  71:        255          0          0          0          0          0         
 0 1036788901   PCI-MSI-edge      eth0-TxRx-7

но тук решението както забелязвате е просто, защото имаме 8 ядра и може всяко 
прекъсване да го бутнем на отделно ядро:
echo 1>  /proc/irq/64/smp_affinity
echo 2>  /proc/irq/65/smp_affinity
echo 4>  /proc/irq/66/smp_affinity
echo 8>  /proc/irq/67/smp_affinity
echo 10>  /proc/irq/68/smp_affinity
echo 20>  /proc/irq/69/smp_affinity
echo 40>  /proc/irq/70/smp_affinity
echo 80>  /proc/irq/71/smp_affinity

това е от 2.6.31-gentoo-r6 с ръчно компилиран igb драйвер от Intel, за да имаме 
8 прекъсвания. Но като имаме само 1 прекъсване, целим следното:

# cat /proc/interrupts
            CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       
CPU6       CPU7
507:  180018856  180019339  180009533  180010112  180008399  180006517  
180020656  180020399   PCI-MSI-edge      eth0

2.6.22-gentoo-r9
/proc/irq/507/smp_affinity: ff

Някой да има идея как да го накарам да работи правилно с нови ядра? Предполагам 
или някъде из 2.6.2x е счупено или драйверите за intel-ските мрежови карти са 
счупени или аз изпускам нещо?

Благодаря,
Момчил
_______________________________________________
Lug-bg mailing list
[email protected]
http://linux-bulgaria.org/mailman/listinfo/lug-bg
_______________________________________________
Lug-bg mailing list
[email protected]
http://linux-bulgaria.org/mailman/listinfo/lug-bg

Reply via email to