[Asterisk-Users] Re: RAID affecting X100P performance...

Stephen R. Besch sbesch at acsu.buffalo.edu
Thu Jul 22 07:16:06 MST 2004


> I am. My system is a Duron 1200 with an Asus A7V266 board. I have an 
> Athlon XP 2200 that I was planning on upgrading to. I am using the 
> onboard IDE channels; the only cards in the server are video, ethernet, 
> and two X100P's. No IRQ sharing. Three drives in RAID5; two of the 
> drives are master/slave on one channel, the other shares a channel with 
> a CD drive.
> 
> I'll run the same tests you did and report back with the results.
> 
Unless I read the manual correctly, it is not possible to have the 
configuration you specify without shared interrupts on this motherboard 
(Asus A7V266E):

Slot1: uses INTD, which is shared with the RAID, USB and slot 5
Slot2: uses INTA, Shared with AGP, onboard audio and onboard LAN
Slot3: Uses INTB, Shared with AGP
Slot4: Uses INTC, The only unshared slot
Slot5: Uses INTD, Shared with slot 1, RAID and USB

Looking at the manuals for several other MOBO's, similar results 
situation seem to exist. My guess is that Slot1 contains one of your 
X100P's, so when the RAID is enabled, interrupt response time goes into 
the toilet. The point is, as long as motherboard manufacturers are going 
to take the easy (lazy?) way out, and share slot interrupts with each 
other and with other hardware, you are pretty much stuck with not 
putting your RAID on the same box as the X100P.

Something which seems never to be considered about echo is the nature of 
the true echo path.  It obviously includes the delay over the analog 
wire, if there is one, plus the sum of all the packet delays on the 
network. What is forgotten is that it also includes the delay through 
the CPU, which, in turn includes the delay through the cancellation 
process.  If the delay is always constant, cancellation becomes much 
more straightforward. For any real world echo canceller to work, it must 
be able to adapt to variable delays.  The problem is, that if the delay 
adaptation response is too fast, cancellation becomes unstable, if it is 
too slow, cancellation is not effective.

Now, look at the problem the T100P suffers as part of the echo 
cancellation stream. Each time it needs service, the time to be serviced 
changes based on random fluctuations in interrupt service time, even if 
the interrupt is given highest priority (i.e., a low interrupt number). 
Typically, this fluctuation is not too bad, at least in terms of the 
requirements of echo cancellation.  Now, put a shared interrupt on the 
T100P.  Even worse, you assign it to share with a disk controller, which 
by definition should be given a low priority (that's why the IDE 
interrupts are always 14 and 15!)  You have now just put horrific delay 
fluctuation in the cancellers path. Everything gets priority, including 
the disk if you are unlucky. These wild, and large, fluctuations in 
delay will kill any echo canceller, no matter how good it is - the 
exception of course being an independed canceller that processes the 
echo before it even gets to the X100P and the asterisk box.

Similar logic applies to the network card, since it also lies in the 
cancellation stream and it's interrupt response time can significantly 
affect path delay.

The solution?  Well, I'm guessing here, but you might be able to get a 
big improvement by using the one unshared interrupt for the X100P, use a 
PCI video card to free up two of the shared slots and put the second 
X100P in slot 3.  Finally, put your lan (if it's not onboard) into 
slot2. Finally, and this may be the most important thing, don't let the 
motherboard automatically assign interrupts to IntA-IntD. Go into the 
BIOS and force it to assign the highest priorities available to the 
T100P and the net card. Also, disable any unused hardware you're not 
using which may have an interrupt assigned (eg, the USB controller). For 
the ASUS at least, the priorities assigned to the interrupts are listed 
in a table in the user manual (p32).

Stephen R. Besch



More information about the asterisk-users mailing list