My machine has an AMD Opteron dual-core. In order to maintain a high-accuracy timer, I wrote a program to read TSC (Timestamp Clock) value. The TSC read instruction always read the TSC vaue from the core which the program is scheduled to. For old kernel such as 2.6.18, TSC value is consistent among different cores. However, after I upgrade the kernel to 2.6.22 (or 2.6.24), TSC value clearly differs among cores. The difference is about 8 millisecond.

Could anybody give some hints on where the kernel makes this change?

Thanks greatly.