dtrace users opinion solicited (timestamps)

Tim Kientzle kientzle at freebsd.org
Fri Jul 10 02:54:15 UTC 2009


Andriy Gapon wrote:
> on 09/07/2009 21:02 Marius Nünnerich said the following:
>> What about atomically changing tsc_freq every time the frequency is changed?
> 
> This is what actually  does happen, but it doesn't help.
> 
> Say, there is a moment T1 when TSC has value N and tsc_freq is X, and moment T2
> when when TSC value (N + 1) and tsc_freq is 10*X.
> So the formula gives:
> 
> t1 = N / X
> t2 = (N+1) / (10*X)

Instead of just storing tsc_freq at each frequency change,
you really need:
   * Last timestamp just before frequency change (t0)
   * new frequency (f)
   * TSC value at frequency change (c0)

Then
    t = t0 + (rdtsc() - c0) / f

Of course, I haven't looked at the code to tell
what your range limitations are.

Tim


More information about the freebsd-current mailing list