[Asterisk-Dev] ztdummy accuracy improvements on kernel 2.6

Brian West brian.west at mac.com
Mon May 16 07:06:40 MST 2005


No this is not a ztdummy related issue.  Its a design flaw in  
meetme... Nothing more.

/b



On May 16, 2005, at 6:06 AM, Tony Mountifield wrote:

> I've been using MeetMe via IAX with no problems on a FC1 box with the
> 2.4 kernel and zaprtc for timing.
>
> Recently I've set up a FC3 box with the 2.6 kernel, and have been  
> using
> ztdummy for timing. Using the same IAX sources to a MeetMe conference,
> I found that there was an increasing delay between a participant  
> speaking
> and the others hearing him. Over 10-20 minutes this crept up to  
> several
> seconds!
>
> The only difference between the two boxes were the kernel and the  
> timing,
> so I looked at ztdummy. I think the use of add_timer() and the jiffy
> counter doesn't give enough accuracy for MeetMe use (nor probably  
> for IAX
> trunking, although I'm not using trunking).
>
> This got me thinking and looking again at zaprtc.
>
> In 2.4, in order to use zaprtc it was necessary to recompile the  
> kernel
> to make the rtc a module or not included (CONFIG_RTC=m or  
> CONFIG_RTC=n).
>
> In the 2.6 version of drivers/char/rtc.c I found a new feature to hook
> a function into the rtc interrupt, using the functions rtc_register(),
> rtc_unregister() and rtc_control(). There is an example of their use
> in sound/code/rtctimer.c. This would enable an rtc-based zap timer to
> be implemented without any kernel changes.
>
> So I rewrote the 2.6-specific parts of ztdummy.c to use these rtc  
> funcs
> instead of add_timer(), adopting the same technique as in zaprtc,  
> which
> is to set the rtc irq to 1024Hz (it must be a power of 2), and then
> skip 3 out of every 128 irqs (evenly spaced) to give 1000 zaptel
> interrupts each second.
>
> Repeating my tests, I found that the increasing delay was no longer
> present. This confirmed to me that the jiffy-based ztdummy is not  
> accurate
> enough, and than an rtc-based one would be a big improvement.
>
> I intend to submit this to mantis, but could approach it in two ways:
> 1. Make it a completely new module called ztrtc, and only for 2.6.
> 2. Make it an update to ztdummy.c, replacing the add_timer code with
>    the rtc_request() code.
>
> Any recommendations which of the two I should do?
>
> Cheers
> Tony
> -- 
> Tony Mountifield
> Work: tony at softins.co.uk - http://www.softins.co.uk
> Play: tony at mountifield.org - http://tony.mountifield.org
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev
>




More information about the asterisk-dev mailing list