Negative PING Times on AMD Dual Core Processors - Solved

 Originally published on August 28, 2007 by Dirk Paessler
Last updated on March 03, 2022 • 3 minute read

[UPDATE Oct 2010]  There seems to be an easier solution than the one mentioned below: By using the "/usepmtimer" boot.ini flag (simply add this line to boot.ini) you can change the time source for QueryPerformanceCounter from TSC to the PM timer which is a global time source.
Note: This information was taken from here and http://wiki.ljackson.us/Negative_Ping_Time#BOOT.ini_Solution, but we did not test it ourselves on AMD CPUs).
In recent weeks we have received reports about negative PING time measurements (e.g. -5 ms) from users of our monitoring products. "Great", we thought, "our software has overcome the laws the physics and is able to received network packets before they are actually sent". But now there are more and more hints showing up around the Internet that we will not receive the Nobel price in physics...
This issue seems to be caused by a discrepancy between the internal timers of the two CPU cores in AMD's dual core processors. After a reboot the CPU timers are in sync but over time the timers drift apart. And this causes the negative PING times. And it was also causing some other timing issues with other software products, especially games. AMD has published a driver update ("AMD Dual-Core Optimizer") for their CPUs which periodically synchronizes the timers and fixes the problem this way.
Qoute: The AMD Dual-Core Optimizer helps to correct [...] incorrect timing effects that these applications may experience on dual-core processor systems, by periodically adjusting the core time-stamp-counters, so that they are synchronized.