Skip site navigation (1)Skip section navigation (2)
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>