Subject: Re: Prototype kernel continuation-passing for NetBSD
To: None <tech-kern@netbsd.org>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-kern
Date: 03/26/2004 13:23:57
Matt and I have exchanged a couple of messages off-list in addition to
the on-list traffic. I think we've reached agreement on most issues.
The list I have is that:
1. Ideally, one or other of kcont and generic-softints, but not both;
2. The functionality of kcont is richer than generic-softints. We could
reworked generic-softints to be a full replacment for kcont, but it'd
look (modulo Matt's other points) much like kcont does now.
3. Most (if not all) current uses of generic softints could be replaced by
kcont(9) with the kcont object allocated as a sub-field of some other
long-lived memory (such as a device softc). kcont should aqcuire a static
initializer macro to make this task easier.
4. IPL_*. issues. kcont already has separate queues for each currently-supported
deferred IPL. The semantics between them, and the misuse of IPL_* values,
(the comparison) needs to be cleaned up. Other ideas (such as ping-ponging
already-allocated kconts from one queue to another) should be documented, or abandonded.
5. Since there's no example code in the tree, the design intent and *all*
planned/envisaged uses, need to be spelled out.
6. Matt strongly wants to restrict allocation of kconts to thread-safe context.
I still have private uses for allocating kconts truly on-the-fly.
We need to reach closure there.
Matt, is that right? Did I forget anything?