[Asterisk-Users] Intel Desktop MotherBoards *NOT* Unsuitable for Digium Boards

Forrest W Christian fwc at mt.net
Wed Nov 9 21:31:44 MST 2005


George Pajari wrote:

> To make a long story short, according to Intel Dealer Technical 
> Support (we became Intel dealers in order to get answers to our 
> questions) there is no Intel motherboard that permits the IRQs to be 
> configured uniquely. They are all hardwired and shared. This 
> information applies to both the Intel Desktop Board and Server Board 
> product lines.

I have been using a D945GNT with great success, even with shared 
interrupts. But read on for a solution I just found..

I shared your frustration with not being able to get the interrupts to 
move to not being shared.   What is more frustrating is that I knew with 
almost certainty that every device had a distinct interrupt line wired 
into the APIC, and that linux wasn't moving the interrupts off of a 
single interrupt.... Or stated differently, I knew, with reasonable 
certainty, that the hardware of the machine was capable of moving any 
device to almost any interrupt, but the software wasn't asking the 
hardware to do so.  This functionality is available in almost every 
reasonably modern intel chipset.

My interrupts looked something like this:
# cat /proc/interrupts
           CPU0      
  0: 1507033453          XT-PIC  timer
  1:        730          XT-PIC  i8042
  2:          0          XT-PIC  cascade
  8:          1          XT-PIC  rtc
  9:          0          XT-PIC  acpi, ehci_hcd, uhci_hcd
 10:    1169132          XT-PIC  libata, uhci_hcd
 11: 1593809534          XT-PIC  eth0, uhci_hcd, uhci_hcd, wct4xxp
 12:         66          XT-PIC  i8042
NMI:          0
ERR:          0

Didn't matter if I moved the card to a different slot, etc. etc. etc. 
etc..   Always on interrupt 11.

In short, the motherboard was putting everything on interrupt 11 in 
XT-PIC mode.  This was a *software* issue.

Someone mentioned IO-APIC in this thread, and it lit up a different part 
of my brain for me to be able to search around the net and find that at 
least under CentOS, you have to be running a SMP kernel (even on a UP 
machine) to be able to get the IO-APIC functionality.

Now, with a SMP kernel I get:

# cat /proc/interrupts
           CPU0      
  0:      55935    IO-APIC-edge  timer
  1:          8    IO-APIC-edge  i8042
  8:          1    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 12:         66    IO-APIC-edge  i8042
169:          0   IO-APIC-level  uhci_hcd
185:          0   IO-APIC-level  uhci_hcd
193:          0   IO-APIC-level  uhci_hcd
201:          0   IO-APIC-level  ehci_hcd, uhci_hcd
209:      17700   IO-APIC-level  wct4xxp
217:        201   IO-APIC-level  eth0
233:       5187         PCI-MSI  libata
NMI:          0
LOC:      55761
ERR:          0
MIS:          0

Much Better.  

For reference:
  Linux  2.6.9-22.0.1.ELsmp #1 SMP Thu Oct 27 13:14:25 CDT 2005 i686 
i686 i386 GNU/Linux

-forrest



More information about the asterisk-users mailing list