DragonFly kernel List (threaded) for 2005-06
Re: mtd_cpl question
:"hard-realtime" routines in the kernel context with
:minimal context-switch overhead (pretty much the
:entire kernel/SVC functionality can be implemented
:this way; essentially the kernel become a real-time
:_routine_ dispatcher; processes are scheduled/dispatched
:after no more kernel routines can be run).
:DEC called such real-time kernel routines "fork
:routines" (executed by a "fork dispatcher" processing
:a "fork queue"). Presumably this comes about from
:the fork-join concurrent program notation that goes
:back at least to AOSP around 1960.
:Microsoft today uses "deferred procedure" (or DPC,
:for Deferred Procedure Call).
:IBM called such routines SLIH (Second Level Interrupt
:Handler). (I think one of their Unix OSes (probably
:running on a VM) also used SLIH routines.
:Other names for this technique include "task" (a
:horribly confusing term used by Wirth in one of his
:experimental systems) and "continuation", used in a
:number of systems with a number of slightly different
:conotations, some connected to the theoretical notion
:more than others.
:The very succesful Japanese micro-ITRON systems use
:this technique (called "delayed execution service
:routine/call", I believe). It's interesting that they
:first tried not to use this technique, but got forced
:into it somewhere along the line...
: - bruce
Our IPI messaging works almost the same way, especially
when the _passive calls are made to queue the function call
(that do not generate an actual IPI interrupt).