[ntp:questions] Timekeeping broken on Windows XP with multimedia timer enabled (-M option)
evandro at mailinator.com
Sun Jan 24 22:27:01 UTC 2010
On Jan 21, 10:42 am, Martin Burnicki <martin.burni... at meinberg.de>
> Ah, that's interesting. I did know that new CPU cores may not suffer from
> switched CPU clocks anymore, but I didn't know this is because they are
> driven by the FSB clock. So I assume the QPC clock frequency reported by
> Windows can also correspond to the FSB clock.
Only indirectly. You certainly know that the CPU clock is a multiple
of the FSB clock. The unit of the result returned by RDTSC is still
CPU clock ticks, always. So, when the CPU clock multiplier is changed
from, say, 3.5 to 1.0, due to a power management decision, the TSC
circuitry is changed accordingly, so that its unit is the same as the
CPU's. The result is that when measuring the CPU clock, one will
still get it right.
However, the precision of the TSC is not 1 CPU clock tick anymore, but
the FSB multiplier. So it cannot be used so easily to measure how
many CPU clock cycles a sequence of instructions takes anymore.
AFAIK, on AMD processors it's still possible to chose between variant
and invariant TSC. But I think that the tendency is for BIOS makers
to not offer this option and just enable the invariant TSC, since only
developers care about its precision (and they can use a performance
counter for the same purpose).
More information about the questions