Date: Tue, 3 Jun 1997 03:22:11 +1000 From: Bruce Evans <bde@zeta.org.au> To: msmith@atrad.adelaide.edu.au, msmith@genesis.atrad.adelaide.edu.au Cc: dg@root.com, hackers@FreeBSD.ORG Subject: Re: weird scheduler crash (2.2) Message-ID: <199706021722.DAA05361@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> How do I determine whether an interrupt handler is configured "fast" or >> "slow"? Where are the rules for "fast" and "slow" handlers described? > >Scratch the first one, I've found that. Teach me to crib code from >other drivers 8( The driver author should know :-). >Is there a list of rules for "fast" interrupt handlers? To begin with, here is the list of non-auto variables that may be accessed without special locking from within a fast interrupt handler: { } and as a consequence, here is the list of general kernel functions that may be called from a fast interrupt handler: { } Special functions may be called if the side effects are all known and none is harmful. Here is the list of special functions called in the sio fast interrupt handler: inb(); /* actually inline */ outb(); /* actually inline */ setsofttty(); /* was inline; now pessimized */ schedsofttty(); /* was inline; now pessimized */ breakpoint();; /* actually inline */ microtime(); /* bug; microtime() must not be called if * clock interrupts have been disabled for * more than about 15 usec; siointr() cannot * always satisfy this timing. */ Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706021722.DAA05361>