Re: [RFC PATCHSET] workqueue: implement concurrency managed workqueue

David Howells
2009-10-01T12:57:16Z

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).

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?

David