cvs commit: src/sys/i386/isa clock.c src/sys/kern kern_systimer.c src/sys/sys globaldata.h

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Mar 27 11:26:39 PST 2005


dillon      2005/03/27 11:25:10 PST

DragonFly src repository

  Modified files:
    sys/i386/isa         clock.c 
    sys/kern             kern_systimer.c 
    sys/sys              globaldata.h 
  Log:
  Fix a bug where the main system clock stops operating.  We were using a field
  in the globaldata structure called gd_nextclock to determine whether a systimer
  was queued for a cpu.  This field indicated the next pending timeout for the
  systimer on the cpu.  However, at 8254 rates this 32 bit field has a chance of
  calculating to 0 once every 1/18 second, which disables the systimer dispatch
  on that cpu and can cause the system clocks to stop operating.
  
  Remove the field and replace with a TAILQ_FIRST queue check instead.
  
  The machine dependant part of the systimer implementations needs a better
  way to figure out which cpus to dispatch to.
  
  Reported-by: justin at xxxxxxxxxxxxxxxxxx
  
  Revision  Changes    Path
  1.21      +4 -2      src/sys/i386/isa/clock.c
  1.6       +4 -8      src/sys/kern/kern_systimer.c
  1.35      +1 -1      src/sys/sys/globaldata.h


http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/clock.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_systimer.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/globaldata.h.diff?r1=1.34&r2=1.35&f=u





More information about the Commits mailing list