In usr/src/uts/i86pc/os/timestamp.c function tsc_suspend()
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/i86pc/os/timestamp.c#tsc_suspend

    703                         if (tsc_delta_onsuspend) {
    704                                 tsc_adjust_delta(tsc_saved_tsc);
    705                         } else {
    706                                 tsc_adjust_delta(nsec_scale);
    707                         }

Can anyone explain why line 706 has to call tsc_adjust_delta() 
with parameter nsec_scale?

What exactly is this call supposed to adjust?  The argument for
tsc_adjust_delta() is a number of cpu clock ticks, but nsec_scale
is (10^9 * 2^27 / cpu_freq). It's not a number of tsc ticks but some
scale factor.

On my Tecra S1 Pentium-M 1.3 GHz laptop this adds
(10^9*2^27)/1300000000 == 103244406 clock ticks
(or 0.079 seconds).    But why?

The tsc_adjust_delta(nsec_scale) call appears bogus to me...
--
This message posted from opensolaris.org

Reply via email to