Re: [PATCH 17/21] workqueue: simple reimplementation of SINGLE_THREAD workqueue

Tejun Heo
2009-11-17T16:23:07Z

Hello,

11/17/2009 09:05 PM, Andy Walls wrote:
>> Implementing strict ordering
>> shouldn't be too difficult but I can't help but feeling that such
>> assumption is abuse of implementation detail.
>
> Hmmm, does not the "queue" in workqueue mean "FIFO"?

I don't think it necessarily means strict execution ordering.

> If not for strict ordering, why else would a driver absolutely need a
> singlethreaded workqueue object? It seems to me the strict ording is
> the driving requirement for a singlethreaded workqueue at all. Your
> patch series indicates to me that the performance and synchronization
> use cases are not driving requirements for a singlethreaded workqueue.

I still think the biggest reason why single threaded workqueue is used
is just to reduce the number of threads hanging around. I tried to
audit single thread users some time ago. My impression was that many
of single thread work users did synchronization itself anyway while
smaller portion depended on single threadedness. I didn't notice the
strict ordering requirement but then again I wasn't looking for them.
It seems there are at least two cases depending on FIFO behavior, so
let's see if we can retain the behavior for single threaded
workqueues (maybe it should be renamed to ORDERED?).

Thanks.

--
tejun