Messages in this thread | | | Date | Fri, 02 Oct 2009 02:22:39 +0900 | From | Tejun Heo <> | Subject | Re: [PATCH 19/19] workqueue: implement concurrency managed workqueue |
| |
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
| |