• Andrew Morton's avatar
    [PATCH] time interpolator fix · 40aaa9b3
    Andrew Morton authored
    From: john stultz <johnstul@us.ibm.com>
    
    In developing the ia64-cyclone patch, which implements a cyclone based time
    interpolator, I found the following bug which could cause time
    inconsistencies.
    
    In update_wall_time_one_tick(), which is called each timer interrupt, we
    call time_interpolator_update(delta_nsec) where delta_nsec is approximately
    NSEC_PER_SEC/HZ.  This directly correlates with the changes to xtime which
    occurs in update_wall_time_one_tick().
    
    However in update_wall_time(), on a second overflow, we again call
    time_interpolator_update(NSEC_PER_SEC).  However while the components of
    xtime are being changed, the overall value of xtime does not (nsec is
    decremented NSEC_PER_SEC and sec is incremented).  Thus this call to
    time_interpolator_update is incorrect.
    
    This patch removes the incorrect call to time_interpolator_update and was
    found to resolve the time inconsistencies I had seen while developing the
    ia64-cyclone patch.
    40aaa9b3
timer.c 33.4 KB