|
Hi All
Yes,
apologies for the way I wrote. I was feeling a bit impatient at the
time.
Sort of.
Under 2.4, ztdummy used the 1kHz interrupt available from a UHCI USB interface,
if available. If your USB was OHCI or EHCI then ztdummy was no use. A third
party made available a replacement for ztdummy called zaprtc. It was in fact a
replacement for the rtc module in the kernel, so if your kernel had rtc.c
compiled in (CONFIG_RTC=y) then you needed to recompile the kernel to make it a
module instead (CONFIG_RTC=m). That allowed rtc.o to be unloaded and zaprtc.o to
take its place. It used the 1024Hz interrupt from the RTC chip. In order to make
an effective rate of 1000Hz, it evenly skipped 3 interrupts in every 128. This
small jitter didn't matter in practice, as it was the average that was
important. I used zaprtc on kernel 2.4 very successfully.
When 2.6 came out,
it included a hook to be able to link driver routines into the 1000Hz jiffy
clock. ztdummy was modified to make use of this under 2.6, so eliminating the
dependency on UHCI hardware. When I moved to a 2.6 machine and used this new
ztdummy, I found that it was possible for jiffies to be missed, and that this
caused IAX and SIP channels on MeetMe to experience increasing delays (there
were several mechanisms capable of producing that effect, but this was
definitely one of them). Looking at the kernel code for rtc.c (intending to
create a 2.6 compatible zaprtc), I discovered that the 2.6 rtc also had hooks in
its interrupt service routine. So I modified ztdummy to make use of these hooks
to implement the same strategy that had been in zaprtc. It performed just as
well as zaprtc had, so I submitted it to the bug tracker at http://bugs.digium.com/view.php?id=4301 and
it was accepted into the official tree. Due to a bit of a mix-up when it got
commited, its default was unfortunately set to be turned
off.
When kernel 2.6.13
came out, that version had a default jiffy rate that was not 1000Hz, and so the
jiffy hook could no longer be used. Consequently, the default for 2.6.13 and up
was set to use the rtc hook, which isn't dependent on the kernel clock
rate. In fact, using the rtc is best on ANY 2.6 kernel on the PC
platform.
By the way, why was this thread posted to asterisk-perl in the first place?
It doesn't seem to have anything to do with perl.....
Cheers
Tony
|
- RE: help required tejas shah
- help wanted [Re: help required] Jan Kratochvil
- Asterisk Configuration Vijay Gandhi
- RE: Asterisk Configuration Ray Burkholder
- Re: Asterisk Configuration Tony Mountifield
- RE: Asterisk Configuration Ray Burkholder
- Re: Asterisk Configuration Tony Mountifield
- RE: Asterisk Configuration Vijay Gandhi
- RE: Asterisk Configuration Vijay Gandhi
- Re: Asterisk Configuration Tony Mountifield
