[PATCH] x86_64: Make udelay more accurate
authorRoss Biro <ross.biro@gmail.com>
Wed, 11 Jan 2006 21:43:51 +0000 (22:43 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 12 Jan 2006 03:04:52 +0000 (19:04 -0800)
commit79c62cf1789f935280138b412bb750be84aec747
tree24c522ed0dd3dba942f1db43048205b0973aa7c8
parente4e94072d9c3b19662537cbd5e2d37bcaeed3d9b
[PATCH] x86_64: Make udelay more accurate

The attempt to avoid overflow in __delay caused varying precision
on different CPUs depending on differences in the CPU speed.

We should be able to do this multiplication with out overflowing
provided the
cpu is running at less than about 128 GHz.  xloops < 20000 * 0x10c6.
loops_per_jiffy * HZ <= cpu_clock_speed.  So if the cpu clock speed
< 2^64/(20000 * 0x10c6) = 2^64/ 51E6CC0 < 2^64/2^27 = 2^37 = 128G we
will not overflow the calculation.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/lib/delay.c