Re: [PATCH RFC 2/2 V2] workqueue: use dedicated creater kthread for all pools

Lai Jiangshan
2014-07-30T03:44:43Z

On 07/30/2014 11:23 AM, Tejun Heo wrote:
> Hello, Lai.
>
> On Wed, Jul 30, 2014 at 08:32:51AM +0800, Lai Jiangshan wrote:
>>> Why? Just sleep and retry? What's the point of requeueing?
>>
>> Accepted your comments except this one which may need to discuss
>> for an additional round. Requeueing passes the retry to the
>> kthread_worker and gives a change to the other pools which are also
>> creating worker.
>
> But why is that a good idea? The fact that creation of a worker for a
> specific pool is completely coincidental. The failed pool itself
> isn't inherently blameable. It was just unlucky and moving onto a
> different pool doesn't improve the chance of success in any way. The
> only thing requeueing achieves is punishing the unlucky one by putting
> it at the back of the queue while adding complexity.

It add complexity to other things but not the code. The code is simplified.

And failed pool is much fewer than creation which is completely coincidental,
and after cooldown time, the other pool may also create worker.

Thanks,
Lai

>
>> This patch will be deferred until 3.19 due to some unbound patches
>> are ready soon.
>
> We're too late for this merge window anyway. This is a pretty
> pervasive change after all.
>
> Thanks.
>