[Asterisk-Users] FXO/FXS cpu spikes, data loss and ztclock.

Rich Adamson radamson at routers.com
Mon Jun 20 14:53:30 MST 2005


Certainly sounds like you're getting closer to the problem. I thought
about doing something like that, but after spending soooo much time
with the TDM card, decided not to mess with it.

I assume you tried a few other values for N1, M1 and CGM as well?

Do you think any of the profiling tools would be useful to isolate
the asterisk routines causing the spikes?

------------------------
> Digging further into the FXO cpu spike vs clock issue, I
> removed the 18.432 MHZ crystal from an FXO card and replaced
> it with a 20.000 MHZ crystal.  This of course forced the zaptel
> timing way off ~ 93% accurate using ztclock.  I then proceeded to
> modify the wcfxo.c driver source code to set the proper PLL divider
> values to return the DAA clock back to 8 Khz.  I came up with the
> values of N1=25, M1=72 and CGM=1.  I wrote the corresponding
> values out to registers 7, 8 & 10.  This seemed to bring the clock
> back closer to the true 8 Khz spec and in fact seemed to provide
> a slightly better clock value than the original crystal.
> 
> Before the mod, I was seeing CPU spikes once every 12 seconds
> while ztclock was predicting "Estimate 8 frame slips every
> 12.083200 seconds."
> 
> After the mod, I was seeing them once every 15 second while
> ztclock was predicting "Estimate 8 frame slips every
> 15.104000 seconds."
> 
> It certainly seems that there is a direct, predictable
> relationship here.  I'd appreciate any thoughts that others
> may be able to contribute based upon these results or the
> results of their own testing with ztclock and vmstat 1 on
> any of the FXO/FXS hardware.
> 
> Here are my thoughts on this:
> 
> I suspect that frame slips are occuring somehow.  I have not
> quite figured out how at this point, but it does appear (if ztclock
> is accurate) that the math is pointing in that direction.  The
> predictability of the spikes seems too much to be just coincidence.
> Also, assuming ztclock is accurate, it appears that for most FXO/FXS
> hardware, the clock actually runs just a little faster than 8000 hz.
> If the FXO card was moving data into a zaptel buffer at a rate slightly
> faster than it was being removed, then a buffer overrun condition aka
> frame slip would be the invariable result.  I'm thinking that meshing
> against precisely timed VOIP data (or T1) would be one example where we could
> expect something like this to occur.  In any event a buffer overrun
> would most certainly result in lost data.  I suspect this is causing the
> CPU spikes, and also is the reason why nobody seems to be able to
> reliably use data/fax applications across these types of cards.
> Best as I can determine, it seems that certain channels of the Asterisk
> PBX seem to time independently from the primary clock source.  My
> experience tells me that in order for data to pass across a telecom
> network, every node must be in precise timing sync in order to avoid
> data loss. I would not expect Asterisk to be any different.  Interestingly,
> by adding a TDMOE connection to a second system and configuring it to time
> from the first, the exact same ztclock and vmstat 1 results were obtained
> on the second system.
> 
> Here is some raw data on the results I obtained...
> 
> 
> *** ztclock results before modification ***
> 
> ./ztclock
> 
> 
> ztclock - clock source accuracy test (3 passes)
> 
> Flushing input buffer...
> Flush Complete.
> 
> Test is approximately 3 minutes.  Please wait...
> 
> 483328 samples in 60.410900 sec. (483288 sample intervals) 99.991722%
> 483328 samples in 60.410901 sec. (483288 sample intervals) 99.991722%
> 483328 samples in 60.410899 sec. (483288 sample intervals) 99.991722%
> 
> Estimate 8 frame slips every 12.083200 seconds.
> 
> 
> *** ztclock results after modification ***
> 
> 
> ./ztclock
> 
> ztclock - clock source accuracy test (3 passes)
> 
> Flushing input buffer...
> Flush Complete.
> 
> Test is approximately 3 minutes.  Please wait...
> 
> 483328 samples in 60.411915 sec. (483296 sample intervals) 99.993378%
> 483328 samples in 60.411915 sec. (483296 sample intervals) 99.993378%
> 483328 samples in 60.411918 sec. (483296 sample intervals) 99.993378%
> 
> Estimate 8 frame slips every 15.104000 seconds.
> 
> 
> 
> Results of vmstat 1
> 
>   procs                  memory    swap          io     system         cpu
> r b w swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
> 
> 0 0 0    0  65108  13224  35340   0   0     0    24 1115   185   0  17  83
> 1 0 0    0  65108  13224  35340   0   0     0     0 1113   178   0   0 100
> 0 0 0    0  65108  13224  35340   0   0     0     0 1113   180   0   0 100
> 0 0 0    0  65108  13224  35340   0   0     0     0 1113   178   0   0 100
> 0 0 0    0  65108  13224  35340   0   0     0     0 1114   178   0   0 100
> 1 0 0    0  65108  13224  35340   0   0     0    12 1115   192   0   0 100
> 0 0 0    0  65108  13224  35340   0   0     0     0 1113   180   0   0 100
> 0 0 0    0  65108  13224  35340   0   0     0     0 1113   180   0   0 100
> 0 0 0    0  65108  13224  35340   0   0     0     0 1113   180   0   0 100
> 1 0 0    0  65108  13224  35340   0   0     0     0 1113   178   0   0 100
> 0 0 0    0  65104  13228  35340   0   0     0    24 1115   190   0   0 100
> 0 0 0    0  65104  13228  35340   0   0     0     0 1113   183   0   0 100
> 0 0 0    0  65104  13228  35340   0   0     0     0 1113   180   0   0 100
> 1 0 0    0  65104  13228  35340   0   0     0     0 1113   179   0   0 100
> 0 0 0    0  65104  13228  35340   0   0     0     0 1113   180   0   0 100
> 0 0 0    0  65100  13232  35340   0   0     0    36 1118   190   0  16  84
> 
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
> 

---------------End of Original Message-----------------





More information about the asterisk-users mailing list