Re: Overview of concurrency managed workqueue

From: Tejun Heo
Date: Wed Jun 16 2010 - 09:40:39 EST


On 06/16/2010 03:37 PM, Johannes Berg wrote:
>> As multiple execution contexts are available for each wq, deadlocks
>> around execution contexts is much harder to create. The default
>> workqueue, system_wq, has maximum concurrency level of 256 and unless
>> there is a use case which can result in a dependency loop involving
>> more than 254 workers, it won't deadlock.
>
> I see a lot of stuff about the current limitations etc., but nothing
> about code that actually _relies_ on the synchronisation properties of
> the current wqs. We talked about that a long time ago, is it still
> guaranteed that a single-threaded wq will serialise all work put onto
> it? It needs to be, but I don't see you explicitly mentioning it.

Oh yeah, if you have WQ_SINGLE_CPU + max inflight of 1, works on the
wq are fully ordered.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/