Messages in this thread | | | Date | Tue, 29 Jun 2010 11:08:11 -0700 | From | Arjan van de Ven <> | Subject | Re: [PATCH 34/35] async: use workqueue for worker pool |
| |
On 6/29/2010 10:12 AM, Tejun Heo wrote: > On 06/29/2010 06:59 PM, Tejun Heo wrote: > >> Hello, Arjan. >> >> On 06/29/2010 06:40 PM, Arjan van de Ven wrote: >> >>> uh? clearly the assumption is that if I have a 16 CPU machine, and 12 >>> items of work get scheduled, >>> that we get all 12 running in parallel. All the smarts of cmwq surely >>> only kick in once you've reached the >>> "one work item per cpu" threshold ??? >>> >> Hmmm... workqueue workers are bound to certain cpu, so if you schedule >> a work on a specific CPU, it will run there. Once a cpu gets >> saturated, the issuing thread will be moved elsewhere. I don't think >> it matters to any of the current async users one way or the other, >> would it? >> > Thinking more about it. It's now not difficult to add a gcwq for an > unbound pseudo CPU number and use it as host for workers which can run > on any CPU. The automatic concurrency management doesn't make much > sense for those workers, so @max_active can be used as the explicit > concurrency throttle. It's not even gonna take a lot of code but I'm > just not convinced that there's much benefit in doing that. So, yeah, > if necessary, sure, but let's think whether it's gonna be actually > useful. >
the point in general is to get maximum parallelism; with systems getting more and more cores, maximum parallelism is a good design goal.
| |