Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I had a problem with CPU7 overload. I found that it was caused by the eth0 interrupts, as you can see on below cat /proc/interrupts. I'm using 2.6.35.2 kernel and Quad-Core AMD Opteron(tm) Processor 2354. I would like that interrupt were supported by all cores so I've tried to echo ff > /proc/irq/16/smp_affinity but it's not working. If I set 1, 2, 4, 8, 16 etc. it works for each core but not for several. I also have other servers where smp_affinity is set to "ff" and it works, but these machines runs on intel.

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7
  0:        126          0          0          0          0          0          0          0   IO-APIC-edge      timer
  1:          0          0          0          0          0          0          0          8   IO-APIC-edge      i8042
  9:          0          0          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
 10:          0          0          0          0          0          0          0          2   IO-APIC-fasteoi   ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3
 11:          0          0          0          0          0          0          0          0   IO-APIC-fasteoi   sata_svw
 14:          0          0          0          0          0          0          0         44   IO-APIC-edge      ide0
 16:     523739      38196      20957    1288960      40051      33985      99858   12142246   IO-APIC-fasteoi   eth0
 28:      33784          0          1         24          0          4       1017     199001   IO-APIC-fasteoi   megasas
NMI:          0          0          0          0          0          0          0          0   Non-maskable interrupts
LOC:   51149605   52755152   47000502   38164758   47335488   49653390   44361349   19201949   Local timer interrupts
SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0          0          0          0          0   Performance monitoring interrupts
PND:          0          0          0          0          0          0          0          0   Performance pending work
RES:   29252262   26917272   17461908    9927632   26959155   24081482   15451952    5680615   Rescheduling interrupts
CAL:      86814        186        188        177       9656        176        169        176   Function call interrupts
TLB:      13134      52049      17599      15275       9937      18316      15062       9433   TLB shootdowns
ERR:          0
MIS:          0

Best regards, Andrew

share|improve this question
    
Enabling Polling may significantly decrease your interrupt overhead. –  Chris S Oct 12 '11 at 14:42
add comment

1 Answer

Well, smp_affinity is a bitmask. Since the binary representations of your numbers are

1:  0000 0001
2:  0000 0010
4:  0000 0100
8:  0000 1000
16: 0001 0000

you've obviously chosen the wrong values. If "ff" is not working, try using "7" which should set the bitmask to allow interrupt processing by CPUs 0-2. Otherwise define "not working" and post the result of cat /proc/irq/16/smp_affinity

You might also read this blog article which is describing SMP affinity in more detail.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.