David Howells 07fe7cb7c7 Create a dynamically sized pool of threads for doing very slow work items
Create a dynamically sized pool of threads for doing very slow work items, such
as invoking mkdir() or rmdir() - things that may take a long time and may
sleep, holding mutexes/semaphores and hogging a thread, and are thus unsuitable
for workqueues.

The number of threads is always at least a settable minimum, but more are
started when there's more work to do, up to a limit.  Because of the nature of
the load, it's not suitable for a 1-thread-per-CPU type pool.  A system with
one CPU may well want several threads.

This is used by FS-Cache to do slow caching operations in the background, such
as looking up, creating or deleting cache objects.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Acked-by: Steve Dickson <steved@redhat.com>
Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Tested-by: Daire Byrne <Daire.Byrne@framestore.com>
2009-04-03 16:42:35 +01:00
..
2009-04-02 19:04:55 -07:00
2008-10-16 11:21:30 -07:00
2008-07-28 14:37:38 +02:00
2009-01-14 18:09:02 +01:00
2009-02-10 00:41:54 +01:00
2008-09-02 19:21:40 -07:00
2009-03-30 22:05:16 +10:30
2009-02-26 21:56:07 +01:00
2009-01-06 11:07:15 +01:00
2008-02-06 10:41:02 -08:00
2009-03-24 10:52:46 +11:00