cvs commit: src/sys/ia64/ia64 clock.c interrupt.c machdep.c mp_machdep.c timerreg.h src/sys/ia64/include clock.h cpu.h pcpu.h

Marcel Moolenaar marcel at
Sun Aug 3 22:13:22 PDT 2003

marcel      2003/08/03 22:13:19 PDT

  FreeBSD src repository

  Modified files:
    sys/ia64/ia64        clock.c interrupt.c machdep.c 
    sys/ia64/include     clock.h cpu.h pcpu.h 
  Removed files:
    sys/ia64/ia64        timerreg.h 
  Cleanup the clock code. This includes:
  o  Remove alpha specific timer code (mc146818A) and compiled-out
     calibration of said timer.
  o  Remove i386 inherited timer code (i8253) and related acquire and
     release functions.
  o  Move sysbeep() from clock.c to machdep.c and have it return
     ENODEV. Console beeps should be implemented using ACPI or if no
     such device is described, using the sound driver.
  o  Move the sysctls related to adjkerntz, disable_rtc_set and
     wall_cmos_clock from machdep.c to clock.c, where the variables
  o  Don't hardcode a hz value of 1024 in cpu_initclocks() and don't
     bother faking a stathz that's 1/8 of that. Keep it simple: hz
     defaults to HZ and stathz equals hz. This is also how it's done
     for sparc64.
  o  Keep a per-CPU ITC counter (pc_clock) and adjustment (pc_clockadj)
     to calculate ITC skew and corrections. On average, we adjust the
     ITC match register once every ~1500 interrupts for a duration of
     2 consequtive interruprs. This is to correct the non-deterministic
     behaviour of the ITC interrupt (there's a delay between the match
     and the raising of the interrupt).
  o  Add 4 debugging sysctls to monitor clock behaviour. Those are
     debug.clock_adjust_edges, debug.clock_adjust_excess,
     debug.clock_adjust_lost and debug.clock_adjust_ticks. The first
     counts the individual adjustment cycles (when the skew first
     crosses the threshold), the second counts the number of times the
     adjustment was excessive (any non-zero value is to be considered
     a bug), the third counts lost clock interrupts and the last counts
     the number of interrupts for which we applied an adjustment
     (debug.clock_adjust_ticks / debug.clock_adjust_edges gives the
     avarage duration of an individual adjustment -- should be ~2).
  While here, remove some nearby (trivial) left-overs from alpha and
  other cleanups.
  Revision  Changes    Path
  1.22      +73 -255   src/sys/ia64/ia64/clock.c
  1.38      +74 -45    src/sys/ia64/ia64/interrupt.c
  1.146     +6 -20     src/sys/ia64/ia64/machdep.c
  1.49      +4 -3      src/sys/ia64/ia64/mp_machdep.c
  1.2       +0 -110    src/sys/ia64/ia64/timerreg.h (dead)
  1.9       +6 -8      src/sys/ia64/include/clock.h
  1.35      +4 -15     src/sys/ia64/include/cpu.h
  1.15      +6 -2      src/sys/ia64/include/pcpu.h

More information about the cvs-src mailing list