Re: [PATCH 19/19] workqueue: implement concurrency managed workqueue

Tejun Heo
2009-10-01T17:23:33Z

Hello,

Linus Torvalds wrote:
>
> On Thu, 1 Oct 2009, Tejun Heo wrote:
>> To solve the above issues, this patch implements concurrency-managed
>> workqueue.
>
> Ok, all the other patches in the series looked great, this one looks
> scary. Everything else was pretty small and targeted, and if bugs appear,
> bisection would show the step that was nasty.
>
> And then comes the big flag-day patch that actually introduces all the new
> logic, and is the most complex of the lot.
>
> Maybe it's inevitable, but if this one could be split up a bit more, I'd
> find the series less scary.
>
> I don't know how, though (except by adding code that simply isn't used in
> previous patches, and that doesn't really help anything at all), so maybe
> the big "switch everything over at once" thing is unavoidable.

Yeap, this one is pretty scary. I tried pretty hard to at least make
the diffs fall into relevant sections (ie. updates to certain part of
logic shows up as diffs to the original part) but I agree this patch
is a tad too big. Maybe I can introduce gcwq first. The big problem
is the strong inter-dependency between the single global worker pool
and the hotplug logic. I tried to introduce the hotplug logic first
but it basically required implementing different interim mechanism
altogether. One solution could be disabling or crippling cpu hotplug
support for several commits so that the processing part and hotplug
part can be introduced separately. Would that be acceptable?

Thanks.

--
tejun