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

看板DFBSD_commit作者時間21年前 (2005/03/28 03:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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@shiningsilence.com 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
文章代碼(AID): #12Hmet00 (DFBSD_commit)