Re: [RFC PATCH 7/8] workqueue: Remove the outer loop in maybe_create_worker()

From: Lai Jiangshan
Date: Thu Aug 18 2022 - 10:44:24 EST


On Wed, Aug 17, 2022 at 6:08 AM Tejun Heo <tj@xxxxxxxxxx> wrote:
>
> On Thu, Aug 04, 2022 at 04:41:34PM +0800, Lai Jiangshan wrote:
> > worker_thread() always does the recheck after getting the manager role,
> > so the recheck in the maybe_create_worker() is unneeded and is removed.
>
> So, before if multiple workers need to be created, a single manager would
> create them all. After, we'd end up daisy chaining, right? One manager
> creates one worker and goes to process one work item. The new worker wakes
> up and becomes the manager and creates another worker and so on. That
> doesn't seem like a desirable behavior.
>

The recheck is always in the same pool lock critical section, so the
behavior isn't changed before/after this patch.