Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCH 19/19] workqueue: implement concurrency managed workqueue | Date | Thu, 01 Oct 2009 14:15:26 +0100 |
| |
Tejun Heo <tj@kernel.org> wrote:
> gcwq always keeps at least single idle worker around. When a new > worker is necessary and the worker is the last idle one, the worker > assumes the role of "manager" and manages the worker pool - > ie. creates another worker. Forward-progress is guaranteed by having > dedicated rescue workers for workqueues which may be necessary while > creating a new worker. When the manager is having problem creating a > new worker, mayday timer activates and rescue workers are summoned to > the cpu and execute works which may be necessary to create new > workers.
I take it that means that the rescue-workers are donated to the pool to become worker threads (perhaps on a temporary basis) in the event that forking fails due to ENOMEM, such that resources can be freed up for fork() to use.
David
| |