[Asterisk-Users] more then two wildcards in one machine
Kristian Kielhofner
kris at krisk.org
Wed Dec 8 16:49:35 MST 2004
Matthew Boehm wrote:
> The problem (from what I know) deals with IRQ interrupts. Each digium card
> must have a seperate IRQ and must be the only card on that IRQ. I ran into a
> problem plugging in just 1 digium card into each and every PCI slot on our
> Dell server and it was still sharing an IRQ with the ethernet card. It wasnt
> until I dissabled the usb, parallel port, serial port #2 and the mouse that
> it finally got its own irq.
>
> Mac's don't have IRQs. This is probably why it was so easy getting 4 cards
> into his mac.
>
> -Matthew
Matthew (and everyone else),
http://www.microsoft.com/whdc/system/sysperf/apic.mspx
The problem is interrupts, not PCI slots. As this article explains,
sharing interrupts adds a signifigant amount of latency to the
interrupt, causing audio droupouts and other weird stuff to happen. It
is nothing specific to Digium hardware or Linux or anything like that.
On a desktop running Windows (or any other OS) with a lot of devices try
to play back an MP3 and generate network, disk, and other I/O activity
on a machine without APIC - the audio WILL skip. Now imagine you are
trying to drive 96+ T1 channels, ethernet boards and who know hom much
else. You can see where there might be a problem.
Apple Mac's have interrupts. They just have a lot of them. A modern
Mac is very similar when compared to a modern x86 with an APIC. Read more.
This is being mitigated on the x86 arhitecture by the APIC - Advanced
Processor Interrupt Controller. You can have more than one APIC in a
machine, and each APIC has 24 IRQs. Most new motherboards have at least
one APIC/processor.
Dell PowerEdge 2850 (dual Xeon):
------------------------------------------------------------------
ast1 etc # uname -a
Linux ast1 2.6.9-pe2850a #2 SMP Fri Dec 3 09:23:03 CST 2004 i686
Intel(R) Xeon(TM) CPU 3.00GHz GenuineIntel GNU/Linux
ast1 etc # cat /proc/interrupts
CPU0 CPU1
0: 6184515 72 IO-APIC-edge timer
1: 8 1 IO-APIC-edge i8042
9: 0 0 IO-APIC-level acpi
12: 65 1 IO-APIC-edge i8042
14: 11 2 IO-APIC-edge ide0
46: 19595 1 IO-APIC-level megaraid
64: 66366 1 IO-APIC-level eth0
65: 77045 1 IO-APIC-level eth1
101: 6113521 1 IO-APIC-level wctdm
NMI: 1 0
LOC: 6184694 6184698
ERR: 0
MIS: 0
ast1 etc #
-------------------------------------------------------------------------
Apple Macintosh G4:
--------------------------------------------------------------------------
[root at localhost root]# uname -a
Linux localhost.localdomain 2.6.8-1.ydl.7 #1 Wed Sep 22 18:46:40 EDT
2004 ppc ppc ppc GNU/Linux
[root at localhost root]# cat /proc/interrupts
CPU0
19: 4540 OpenPIC Level ide0
20: 12 OpenPIC Level ide1
25: 318 OpenPIC Level VIA-PMU
26: 0 OpenPIC Level keywest i2c
27: 35 OpenPIC Level ohci_hcd
28: 97 OpenPIC Level ohci_hcd
41: 1248 OpenPIC Level eth0
42: 0 OpenPIC Level keywest i2c
47: 0 OpenPIC Level GPIO1/ADB
54: 19036943 OpenPIC Level wctdm
55: 0 OpenPIC Edge NMI - XMON
63: 3 OpenPIC Level ohci1394
BAD: 0
[root at localhost root]#
-------------------------------------------------------------------------------
As you can see, on the Dell, the wctdm board has IRQ 101. Waaaaayyyyy
past good ol' 15. On the Mac, it is at 54. Still way beyond the
standard x86 15 limit.
Now, if you are using an OS that can't do APIC on x86, or have a
motherboard that has a mal-functioning APIC, you are out of luck and
have to try to get them all to play nice. I hope that this clears
things up some.
--
Kristian Kielhofner
More information about the asterisk-users
mailing list