Commit 011a660d authored by Christoph Lameter's avatar Christoph Lameter Committed by Linus Torvalds

[PATCH] time interpolator fixes

- Remove the setting of CLOCK_REALTIME and CLOCK_MONOTONIC resolution
  according to the interpolator resolution since this causes periodic timer
  signals to fail.  The clocks will still be high-resolution but the
  "resolution" reported reflects the timer intervals possible via
  timer_settime (also more conformant to what the Single Unix Specification
  says).

- Make the IA64 clock_gettime fastcall fall back on negative clock
  numbers instead of returning CLOCK_REALTIME.
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 4e3b28b0
...@@ -234,7 +234,7 @@ ENTRY(fsys_gettimeofday) ...@@ -234,7 +234,7 @@ ENTRY(fsys_gettimeofday)
cmp.eq p9,p0 = 1,r8 // MMIO64 ? cmp.eq p9,p0 = 1,r8 // MMIO64 ?
extr r2 = r21,24,8 // time_interpolator->jitter extr r2 = r21,24,8 // time_interpolator->jitter
cmp.eq p10,p0 = 2,r8 // MMIO32 ? cmp.eq p10,p0 = 2,r8 // MMIO32 ?
cmp.lt p11,p0 = 2,r8 // function? cmp.ltu p11,p0 = 2,r8 // function or other clock
(p11) br.cond.spnt.many fsys_fallback_syscall (p11) br.cond.spnt.many fsys_fallback_syscall
;; ;;
setf.sig f7 = r3 // Setup for scaling of counter setf.sig f7 = r3 // Setup for scaling of counter
...@@ -338,7 +338,7 @@ ENTRY(fsys_clock_gettime) ...@@ -338,7 +338,7 @@ ENTRY(fsys_clock_gettime)
.prologue .prologue
.altrp b6 .altrp b6
.body .body
cmp4.lt p6, p0 = CLOCK_MONOTONIC, r32 cmp4.ltu p6, p0 = CLOCK_MONOTONIC, r32
// Fallback if this is not CLOCK_REALTIME or CLOCK_MONOTONIC // Fallback if this is not CLOCK_REALTIME or CLOCK_MONOTONIC
(p6) br.spnt.few fsys_fallback_syscall (p6) br.spnt.few fsys_fallback_syscall
mov r31 = r33 mov r31 = r33
......
...@@ -219,11 +219,6 @@ static __init int init_posix_timers(void) ...@@ -219,11 +219,6 @@ static __init int init_posix_timers(void)
.clock_set = do_posix_clock_monotonic_settime .clock_set = do_posix_clock_monotonic_settime
}; };
#ifdef CONFIG_TIME_INTERPOLATION
/* Clocks are more accurate with time interpolators */
clock_realtime.res = clock_monotonic.res = time_interpolator_resolution();
#endif
register_posix_clock(CLOCK_REALTIME, &clock_realtime); register_posix_clock(CLOCK_REALTIME, &clock_realtime);
register_posix_clock(CLOCK_MONOTONIC, &clock_monotonic); register_posix_clock(CLOCK_MONOTONIC, &clock_monotonic);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment