Use nq version of systimer_init_periodic() when initialize interrupt
commit79b38af28ede94a44548a7aa7d228d18f686b35a
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 14 May 2009 10:44:51 +0000 (14 18:44 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 14 May 2009 11:00:25 +0000 (14 19:00 +0800)
tree8a1f91cb399374249d611a9175defad735fdf4cd
parent72d89731993a5e4b01549019d95e1844e3db08ec
Use nq version of systimer_init_periodic() when initialize interrupt
livelock avoidance systimer.

The bug revealed itself as long time looping in the systimer_intr():
The one shot timer interrupt handler is prevented from running for
some time probably due to heavy interrupt load, and livelock avoidance
systimer is setup using high frequency (40000Hz by default).  If non-nq
version of systimer was used, then the main loop of systimer_intr()
would try to keep running and reloading this systimer until the
accumulated time caught up with the saved sys_cputimer count.

Debug information provided by Jordan Gordeev <jgordeev@dir.bg>, he also
helped to locate the systimer cause the long time looping.

Tested-by: Jordan Gordeev <jgordeev@dir.bg>
Approved-by: dillon@
sys/kern/kern_intr.c