summaryrefslogtreecommitdiffstats
path: root/lib/libthr/thread/thr_gc.c
diff options
context:
space:
mode:
authortmm <tmm@FreeBSD.org>2003-05-29 17:49:21 +0000
committertmm <tmm@FreeBSD.org>2003-05-29 17:49:21 +0000
commite330758d56bad341f3b6004687dae494c845e9f0 (patch)
treecfaf16cfa37c0aa9dd63a002ddd5c024618102eb /lib/libthr/thread/thr_gc.c
parentcccb8a341841afbb6950f77adfed8b5bf81138ae (diff)
downloadFreeBSD-src-e330758d56bad341f3b6004687dae494c845e9f0.zip
FreeBSD-src-e330758d56bad341f3b6004687dae494c845e9f0.tar.gz
Completely disable interrupts (not just raise %pil) when calculating the
value to be written into tick_compare in tick_hardclock(). While we were taking care that the value to be written was at least TICK_GRACE ticks in the future, a vector interrupt could happen between calculating the value and writing it. If it took longer than TICK_GRACE to complete (which is doubtful for a single device-triggered vector interrupt, but quite likely for some IPIs), the value written would be in the past and tick interrupts (which drive hardclock and statclock) would stop until %tick wraps around, which takes a long time. Also, increase TICK_GRACE from 1000 to 10000 for good measure. Reported by: kris Reviewed by: jake Approved by: re (scottl)
Diffstat (limited to 'lib/libthr/thread/thr_gc.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud