[LAD] [Jack-Devel] How is the TSC calibration accuracy on dual core 2 computers? (And what about HPET?)
Kjetil S. Matheussen
k.s.matheussen at notam02.no
Wed Apr 29 10:19:20 UTC 2009
On Tue, 28 Apr 2009, Jussi Laako wrote:
> Kjetil S. Matheussen wrote:
>>
>> I've looked at the HPET code in jack, but am unsure how accurate it is,
>> and whether there are any overhead using it?
>
> Resolution on my machine is 1 / 14.318180 MHz. Frequency can vary
> typically from 12 to 16 MHz. Access is usually rather fast through MMIO.
> Accuracy can vary depending on hardware and environment, same applies
> even more for TSC.
>
Thanks! I'll look closer at the jack code.
>> that's the accuracy of usleep(). So it looks promising, but
>> I need at least 0.1ms accuracy...
>
> In my opinion, clock_gettime() with CLOCK_MONOTONIC is pretty good if
> kernel is using reasonably good clock source. You can check the current
> one by "cat
> /sys/devices/system/clocksource/clocksource0/current_clocksource". Over
> rather long periods, CLOCK_REALTIME with good NTP sync would probably be
> a good choice.
>
It shows hpet.
> Over what time span you would need that 0.1 ms accuracy?
>
Hard to say. This is for testing a couple of garbage collectors, and the
difference between worst case and best case can be quite high.
Worst-case is probably around 1ms, and best case maybe around 0.1ms.
It also depends on buffer settings, so I can use higher buffers
to get higher timings.
But calls to clock_gettime()/HPET/etc. will only happen maximum 6 times
per audio block, so clock_gettime()/HPET/etc. doesn't have to be extremely
efficient.
More information about the Linux-audio-dev
mailing list