On Tue, 2008-03-11 at 12:10 +0100, Neal H. Walfield wrote: > What you are suggesting is essentially using a user-level thread > package. (Compacting a thread's state in the form of a closure is a > nice optimization, but the model essentially remains the same.) The > main advantage to user-level thread package is that the thread memory > is pagable and is thus less likely to exhaust the sparser kernel > resources. In the end, however, it suffers from the same problems as > the current approach.
Cthreads does this. Part of the reason we turned off the multiplexing of user threads on kernel threads was because a paging wait would hold the whole kernel thread rather than multiplex with another user thread. Still, the issue is the thread stacks; even if you are using multiplexed user threads, each user thread still needs a user stack. Thomas