DragonFly commits List (threaded) for 2005-03
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/i386/isa clock.c src/sys/kern kern_systimer.c src/sys/sys globaldata.h
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@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
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]