Messages in this thread | | | Date | Sun, 9 Sep 2012 02:34:02 +0800 | Subject | Re: [PATCH 4/7 V6] workqueue: fix idle worker depletion | From | Lai Jiangshan <> |
| |
On Sun, Sep 9, 2012 at 2:11 AM, Tejun Heo <tj@kernel.org> wrote: > On Sun, Sep 09, 2012 at 02:07:50AM +0800, Lai Jiangshan wrote: >> when we release gcwq->lock and then grab it, we leave a hole that things >> can be changed. >> >> I don't want to open a hole. if the hole has bug we have to fix it. >> if the hole has no bug, we have to add lot of comments to explain it. >> >> When I write this reply. I am thinking: is the hole has bug if >> I release gcwq->lock here? result: no. But I don't want to add all things >> what I have thought as comments to explain there is no bug even when we >> open a hole. don't leave reviewers too much burden. > > We're already releasing gcwq->lock in maybe_create_worker(). That's > the reason why @ret is set to true. In addition, we already released > the lock to grab manager_mutex. So, you're not adding any burden. > Please reuse the busy rebinding mechanism. >
in 3.6 busy_worker_rebind() handle WORKER_REBIND bit, not WORKER_UNBOUND bit.
busy_worker_rebind() takes struct work_struct *work argument, we have to add new patch to add a helper and restruct it at first.
worker_maybe_bind_and_lock() 's mean is very clear here. busy_worker_rebind() seems for busy workers, manager is not busy workers.
> > -- > tejun
| |