Retire the INTR_FAST flag as it was obsoleted by the introduction of the

filter argument to bus_setup_intr().
This commit is contained in:
John Baldwin 2011-01-06 21:14:34 +00:00
parent 212dfb3236
commit 49fe354a54
5 changed files with 8 additions and 28 deletions

View File

@ -85,9 +85,8 @@ marks the interrupt as being a good source of entropy -
this may be used by the entropy device
.Pa /dev/random .
.Pp
To define a time-critical handler (previously known as
.Dv INTR_FAST )
that will not execute any potentially blocking operation, use the
To define a time-critical handler that will not execute any potentially
blocking operation, use the
.Fa filter
argument.
See the
@ -128,10 +127,7 @@ will no longer be called.
.Pp
Mutexes are not allowed to be held across calls to these functions.
.Ss "Filter Routines"
A filter runs in a context very similar to what was known as an
.Dv INTR_FAST
routine in previous versions of
.Fx .
A filter runs in primary interrupt context.
In this context, normal mutexes cannot be used.
Only the spin lock version of these can be used (specified by passing
.Dv MTX_SPIN

View File

@ -180,15 +180,6 @@ The
flag specifies that this handler cannot share an interrupt thread with
another handler.
The
.Dv INTR_FAST
flag specifies that when this handler is executed, it should be run immediately
rather than being run asynchronously when its interrupt thread is scheduled to
run.
The
.Dv INTR_FAST
flag implies
.Dv INTR_EXCL .
The
.Dv INTR_MPSAFE
flag specifies that this handler is MP safe in that it does not need the
Giant mutex to be held while it is executed.
@ -198,10 +189,8 @@ flag specifies that the interrupt source this handler is tied to is a good
source of entropy, and thus that entropy should be gathered when an interrupt
from the handler's source triggers.
Presently, the
.Dv INTR_FAST
and
.Dv INTR_ENTROPY
flags are not valid for software interrupt handlers.
flag is not valid for software interrupt handlers.
.Pp
It is not permitted to sleep in an interrupt thread; hence, any memory
or zone allocations in an interrupt thread should be specified with the
@ -237,7 +226,7 @@ swi_add(struct ithd **ithdp, const char *name, driver_intr_t handler,
struct ithd *ithd;
int error;
if (flags & (INTR_FAST | INTR_ENTROPY))
if (flags & INTR_ENTROPY)
return (EINVAL);
ithd = (ithdp != NULL) ? *ithdp : NULL;

View File

@ -128,9 +128,7 @@ Mutexes which do not context switch are
mutexes.
These should only be used to protect data shared with primary interrupt
code.
This includes
.Dv INTR_FAST
interrupt handlers and low level scheduling code.
This includes interrupt filters and low level scheduling code.
In all architectures both acquiring and releasing of a
uncontested spin mutex is more expensive than the same operation
on a non-spin mutex.

View File

@ -179,10 +179,8 @@ MIB variable
.It Bq Er EINVAL
The
.Fa flags
argument specifies either
.Dv INTR_ENTROPY
or
.Dv INTR_FAST .
argument specifies
.Dv INTR_ENTROPY .
.It Bq Er EINVAL
The
.Fa ithdp

View File

@ -191,7 +191,6 @@ enum intr_type {
INTR_TYPE_MISC = 16,
INTR_TYPE_CLK = 32,
INTR_TYPE_AV = 64,
INTR_FAST = 128,
INTR_EXCL = 256, /* exclusive interrupt */
INTR_MPSAFE = 512, /* this interrupt is SMP safe */
INTR_ENTROPY = 1024, /* this interrupt provides entropy */