Re: init's children list is long and slows reaping children.

Jeff Garzik
2007-04-10T09:33:52Z

Ingo Molnar wrote:
> * Russell King <rmk+lkml@arm.linux.org.uk> wrote:
>
>> One per PC card socket to avoid the sysfs locking crappyness that
>> would otherwise deadlock, and to convert from the old unreadable state
>> machine implementation to a much more readable linearly coded
>> implementation.
>>
>> Could probably be eliminated if we had some mechanism to spawn a
>> helper thread to do some task as required which didn't block other
>> helper threads until it completes.
>
> looks like the perfect usecase for threadlets. (threadlets only use up a
> separate context if necessary and can be coded in the familiar
> sequential/linear model)

Same response as to Andrew: AFAICS that just increases complexity.

The simple path for programmers is writing straightforward code that
does something like

blah
msleep()
blah

or in pccardd's case,

mutex_lock()
blah
mutex_unlock()

to permit sleeping without having to write more-complex code that deals
with context transitions.

For slow-path, infrequently executed code, it is best to keep it as
simple as possible.

Jeff