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

Tejun Heo
2009-10-02T11:46:19Z

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