Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!bogus.sura.net!udel!sbcs.sunysb.edu!stark.UUCP!gene From: gene@stark.uucp (Gene Stark) Newsgroups: comp.os.386bsd.bugs Subject: Re: Excessive Interrupt Latencies Date: 18 Mar 93 10:23:56 Organization: Gene Stark's home system Lines: 34 Message-ID: <GENE.93Mar18102356@stark.stark.uucp> References: <GENE.93Mar15115756@stark.stark.uucp> <1993Mar16.071007.20320@runx.oz.au> NNTP-Posting-Host: stark.uucp In-reply-to: bde@runx.oz.au's message of Tue, 16 Mar 93 07:10:07 GMT Bruce Evans (bde@runx.oz.au) writes: >I don't think there's anything like that, but there's a bug that causes >timeout routines to run at splhigh(). splsoftclock() doesn't lower the >priority like it should. I've fixed the bug differently. Thank you for pointing this out. In case anyone is interested in a quick fix, this can be accomplished by commenting out the following lines in /sys/kern/kern_clock.c: --------- if (CLKF_BASEPRI(&frame)) { /* * Save the overhead of a software interrupt; * it will happen as soon as we return, so do it now. */ (void) splsoftclock(); softclock(frame); } else --------- This is just a hack, since a "correct" fix should be made to the icu.s routines to make them work right. However, if you just want to keep nearly all timeout routines from running with all interrupts masked, you can use the above as an interim fix. I tested it with code for counting the number of invocations of softclock() that occur with each mask bit set, and commenting out the above code has the desired effect. Gene Stark stark@cs.sunysb.edu -- stark@cs.sunysb.edu