[patch] i386 and x86_64 TSC set_cyc2ns_scale imprecision

From: Mathieu Desnoyers
Date: Mon Sep 12 2005 - 12:28:00 EST


Hi,

I just found out that some precision is unnecessarily lost in the
arch/i386/kernel/timers/timer_tsc.c:set_cyc2ns_scale function. It uses a
cpu_mhz parameter when it could use a cpu_khz. In the specific case of an Intel
P4 running at 3001.171 Mhz, the truncation to 3001 Mhz leads to an imprecision
of 19 microseconds per second : this is very sad for a timer with nearly
nanosecond accuracy.

The patch for 2.6.13.1 is attached. It patches the x86_64 architecture too.
Please look at the patch for further comments.


Mathieu Desnoyers
Master Student in Computer Engineering
École Polytechnique de Montréal

OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68

Attachment: set_cyc2ns_scale_cpu_khz_parameter.diff.gz
Description: Binary data