• Ross Biro's avatar
    [PATCH] x86_64: Make udelay more accurate · 79c62cf1
    Ross Biro authored
    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: default avatarAndi Kleen <ak@suse.de>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    79c62cf1
delay.c 1.01 KB