Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102773014
D33477.id110233.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D33477.id110233.diff
View Options
diff --git a/share/man/man9/intr_event.9 b/share/man/man9/intr_event.9
--- a/share/man/man9/intr_event.9
+++ b/share/man/man9/intr_event.9
@@ -68,19 +68,67 @@
.Ft u_char
.Fn intr_priority "enum intr_type flags"
.Sh DESCRIPTION
-Interrupt threads are kernel threads that run a list of handlers when
-triggered by either a hardware or software interrupt.
-Each interrupt handler has a name, handler function, handler argument,
-priority, and various flags.
-Each interrupt thread maintains a list of handlers sorted by priority.
-This results in higher priority handlers being executed prior to lower
-priority handlers.
-Each thread assumes the priority of its highest priority handler for its
-process priority, or
-.Dv PRIO_MAX
-if it has no handlers.
-Interrupt threads are also associated with a single interrupt source,
-represented as a vector number.
+The interrupt event API provides methods to manage the registration and
+execution of interrupt handlers and their associated thread contexts.
+.Pp
+Each interrupt event in the system corresponds to a single hardware or software
+interrupt source.
+Each interrupt event maintains a list of interrupt handlers, sorted by
+priority, which will be invoked when handling the event.
+An interrupt event will typically, but not always, have an associated
+.Xr kthread 9 ,
+known as the interrupt thread.
+Finally, each event contains a set of optional callback functions which will be
+invoked before and after the handler functions themselves.
+These callbacks are intended to be set by the interrupt controller driver.
+.Pp
+An interrupt handler contains two distinct callback functions:
+the
+.Em filter
+and the
+.Em handler .
+The
+.Em filter
+function is run from the interrupt context and is intended to perform quick
+handling such as acknowledging or masking a hardware interrupt,
+and queueing work for the ensuing thread
+.Em handler.
+Both handler functions are optional; each handler may choose to register a
+filter, a thread handler, or both.
+Each interrupt handler also consists of a name,
+a set of flags,
+and an opaque argument which will be passed to both the
+.Em filter
+and
+.Em handler
+functions.
+.Ss Handler Constraints
+.Pp
+It is not permitted to sleep in an interrupt handler; hence, any memory
+or zone allocations in an interrupt thread should be specified with the
+.Dv M_NOWAIT
+flag set.
+Any allocation errors must be handled thereafter.
+.Pp
+The
+.Em filter
+may not yield the CPU for any reason, and therefore may only use spin locks to
+access shared data.
+The
+.Em handler
+function executes from the context of the associated interrupt kernel thread,
+and may be preempted by higher priority threads.
+Thus, the
+.Em handler
+function may obtain additional non-sleepable types of locks, as described in
+.Xr locking 9 .
+.Pp
+The exception to these constraints is software interrupt threads, which are
+allowed to sleep but should be allocated and scheduled using the
+.Xr swi 9
+interface.
+.Pp
+.Ss Function Descriptions
.Pp
The
.Fn intr_event_create
@@ -180,12 +228,6 @@
Presently, the
.Dv INTR_ENTROPY
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
-.Dv M_NOWAIT
-flag set.
-Any allocation errors must be handled thereafter.
.Sh RETURN VALUES
The
.Fn ithread_add_handler ,
@@ -306,6 +348,7 @@
.El
.Sh SEE ALSO
.Xr kthread 9 ,
+.Xr locking 9 ,
.Xr malloc 9 ,
.Xr swi 9 ,
.Xr uma 9
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Nov 17, 11:50 PM (13 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14686706
Default Alt Text
D33477.id110233.diff (3 KB)
Attached To
Mode
D33477: ithread(9): update top-level description
Attached
Detach File
Event Timeline
Log In to Comment