Messages in this thread | | | Subject | Re: [RFC][PATCH] create workqueue threads only when needed | From | Benjamin Herrenschmidt <> | Date | Mon, 02 Feb 2009 20:46:33 +1100 |
| |
On Mon, 2009-02-02 at 10:14 +0100, Oliver Neukum wrote: > Am Monday 02 February 2009 10:05:28 schrieb Benjamin Herrenschmidt: > > > Work which /may/ sleep longer, for example performs SCSI transactions, > > > needs to go into a private workqueue or other kind of context. > > > > Well, it's a bit silly to allocate a private workqueue with all it's > > associated per CPU kernel threads for something as rare as resetting > > your eth NIC ... or even SCSI error handling in fact. > > How do you avoid a deadlock if SCSI error handling doesn't use > a dedicated workqueue?
Something such as slow-work or async funcs (not sure about the later, I have to look at the implementation) but the basic idea is to have a pool of threads for "generic" delayed work, when its busy, pick another one, and the pool itself should resize if there's too much pressure.
Ben.
| |