[asterisk-users] Problem with new AEX800 card dying because of interrupt problems

Shaun Ruffell sruffell at digium.com
Wed Sep 8 11:06:02 CDT 2010


On 09/08/2010 10:38 AM, Christian Weeks wrote:
> So I am asking the list, do you have any advice except perhaps to go
> back to the broken channel bank? Is it really true that my modern server
> class machine (quad core xeon) cannot handle the AEX800, whereas my
> seven year old AMD desktop (previous host to the T1) could handle what
> seems to have been about 3x the capacity? Isn't this a massive
> regression?

Does the AEX800 work fine in your old AMD desktop?  If the wctdm24xxp
driver is having problems servicing the interrupt in a timely fashion in
your server I would be surprised if other cards in the same system
wouldn't also experience high interrupt latencies which would probably
manifest itself as pops and noise on the channels.

Some server class machines can have problems since they aren't optimized
for "real-time" performance but are instead optimized for overall
throughput (typically) and there are timing requirements for telephony.
 In other words, it doesn't matter if your server can handle a thousand
channels...if it can't service any one channel within 25ms consistently,
you're going to have issues with audio.

I would recommend:

a) checking the transfer rate to your hard drive ('hdparam -t
/dev/[sda|hda]').  If it's below 4MB/s that's the likely culprit.
Sometimes setting the kernel command line parameter to "hda=none" can
help depending on the kernel version you're using.  I've also seen slow
transfer rates fixed by changing BIOS settings.

b) Use cyclictest (https://rt.wiki.kernel.org/index.php/Cyclictest) and
then stress your system to make sure maximum latencies remain low
without DAHDI loaded.  System Management Interrupts / Baseboard
Management Controllers can cause problems here on some servers.

If cyclictest is shows you have some maximum latency above 128ms, I
would recommend trying to fix that first, but if for some reason you
can't, you could trade some of your system memory for increased
tolerance to system conditions by editing the DRING_SIZE in
drivers/dahdi/voicebus.h to 256 or 512 depending on what cyclictest
reported what your maximum latency is.  Keep in mind this isn't a "fix"
since you'll still have problems in your audio for any latency above 25ms.

Good luck,

-- 
Shaun Ruffell
Digium, Inc. | Linux Kernel Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: www.digium.com & www.asterisk.org



More information about the asterisk-users mailing list