From: Dmitry Torokhov I noticed that although timer_tsc registers cpufreq notifier to detect frequency changes and adjust cpu_khz it does not set cyc2ns_scale. arch/i386/kernel/timers/timer_tsc.c | 1 + 1 files changed, 1 insertion(+) diff -puN arch/i386/kernel/timers/timer_tsc.c~timer_tsc-cyc2ns_scale-fix arch/i386/kernel/timers/timer_tsc.c --- 25/arch/i386/kernel/timers/timer_tsc.c~timer_tsc-cyc2ns_scale-fix 2003-09-05 01:43:32.000000000 -0700 +++ 25-akpm/arch/i386/kernel/timers/timer_tsc.c 2003-09-05 01:43:32.000000000 -0700 @@ -312,6 +312,7 @@ time_cpufreq_notifier(struct notifier_bl if (use_tsc) { fast_gettimeoffset_quotient = cpufreq_scale(fast_gettimeoffset_ref, freq->new, ref_freq); cpu_khz = cpufreq_scale(cpu_khz_ref, ref_freq, freq->new); + set_cyc2ns_scale(cpu_khz/1000); } #endif } _