• Andrew Morton's avatar
    [PATCH] monotonic clock source for hangcheck timer · 92525be5
    Andrew Morton authored
    From: john stultz <johnstul@us.ibm.com>
    
    This patch, written with the advice of Joel Becker, addresses a problem with
    the hangcheck-timer.
    
    The basic problem is that the hangcheck-timer code (Required for Oracle)
    needs a accurate hard clock which can be used to detect OS stalls (due to
    udelay() or pci bus hangs) that would cause system time to skew (its sort of
    a sanity check that insures the system's notion of time is accurate).
    However, currently they are using get_cycles() to fetch the cpu's TSC
    register, thus this does not work on systems w/o a synced TSC.
    
    As suggested by Andi Kleen (see thread here:
    http://www.uwsg.iu.edu/hypermail/linux/kernel/0302.0/1234.html ) I've worked
    with Joel and others to implement the monotonic_clock() interface.  Some of
    the major considerations made when writing this patch were
    
    o Needs to be able to return accurate time in the absence of multiple timer
      interrupts
    
    o Needs to be abstracted out from the hardware
    
    o Avoids impacting gettimeofday() performance
    
    This interface returns a unsigned long long representing the number of
    nanoseconds that has passed since time_init().
    92525be5
timer_tsc.c 10.6 KB