[asterisk-dev] Zaptel Interrupt Issues
Matthew Fredrickson
creslin at digium.com
Tue Oct 2 10:21:55 CDT 2007
Bob wrote:
> I have a theory about zaptel interrupt issues.
>
> I've done some testing on a wide variety of systems. I've used Sangoma,
> Digium, and Rhino T1/E1 cards. I've developed some data integrity tools.
>
> What I have found is that systems with a high load drop data bits that go
> unnoticed on all of these systems. Unless using PRI, these errors are
> undetectable. On systems with old style DMA, I was able to reduce the data
> errors to near zero by changing the ZT_CHUNKSIZE to 16, 32, or 64. At 128, I
> can detect the delay, and at 512, a commercial EC is required on a zap-zap
> bridged call. On ZT_CHUNKSIZE of 64 and above, I needed a load_avg of 500 or
> so to cause an error, and that usually broke the system eventually anyhow.
>
> My zaptel patch is to add *(8/ZT_CHUNKSIZE) to all those timer constants in
> zaptel.h. I think that those should go in there anyhow. The modules that
> don't like ZT_CHUNKSIZE == 8 will tell you at compile time.
>
> My theory is that user land code is not being scheduled every 1 ms under
> high load. The data drops are most prominent on systems with high network
> traffic or RAIDs that can occupy the CPU for more than 1ms without letting
> go. The simple solution was to expand the time to 2, 4, 8 ms respose time of
> the user application.
>
> Feedback?
I have observed similar issues. My hypothesis is this rather:
It would seem that under heavy load (network, disk, etc) there are bad
drivers in the kernel that disable interrupts for a long enough period
of time (i.e. > 1ms) so that the drivers responsible for servicing the
zaptel cards are not able to handle interrupts within the ~1-2 allowable
milliseconds.
I as well have seen that it corresponds to either raid controllers
and/or network cards.
>
> Should I submit this patch?
Certainly. Please open a bug for it on bugs.digium.com so that we can
start going through this.
--
Matthew Fredrickson
Software/Firmware Engineer
Digium, Inc.
More information about the asterisk-dev
mailing list