Ok. Thinking about it I agree with Christoph that parallel API's can
be a problem.
However we do still need to support kernel threads where kthread_stop will
never be called. There appear to be a few legitimate cases where
someone wants to fire off a thread and have it do some work but don't
care at all for stopping it before it is done.
So I propose we add a kthread_orphan as a basic primitive to decrement the
count on the task_struct if we want a kthread to simply exit after it
has done some work.
And as a helper function we can have a kthread_run_orphan.
I think having a kthread_orphan will document what we are doing better
and make it easy to find kernel threads that don't use kthread_stop.
The pain is that this requires an audit of all kernel kthread creators
so that we call kthread_orphan on the right ones, or else we will have
a task_struct leak. At least that isn't a fatal condition.
Eric
-