| | Date | Fri, 02 Oct 2009 20:44:58 +0900 | | From | Tejun Heo <> | | Subject | Re: [RFC PATCHSET] workqueue: implement concurrency managed workqueue |
| |
Hello, David Howells.
David Howells wrote: > Sounds interesting as a replacement for slow-work. Some thoughts for you: > > The most important features of slow-work are: > > (1) Work items are not re-entered whilst they are executing. > > (2) The slow-work facility keeps references on its work items by asking the > client to get and put on the client's refcount. > > (3) The slow-work facility can create a lot more threads than the number of > CPUs on a system, and the system doesn't grind to a halt if they're all > taken up with long term I/O (performing several mkdirs for example). > > I think you have (1) and (3) covered, but I'm unsure about (2).
Given that slow-work isn't being used too extensively yet, I was thinking whether that part could be pushed down to the caller. Or, we can also wrap work and export an interface which supports the get/put reference.
> Also, does it actually make sense to bind threads that are > performing long-term I/O to particular CPUs? Threads that are going > to spend a lot more time sleeping on disk I/O than actually running > on a CPU?
Binding is usually beneficial and doesn't matter for IO intensive ones, so...
Thanks.
-- tejun
|