Messages in this thread | | | Date | Mon, 31 May 2010 11:58:25 +0200 | From | Tejun Heo <> | Subject | Re: [PATCH 4/4] sched: add hooks for workqueue |
| |
Hello, Peter.
On 05/31/2010 10:01 AM, Peter Zijlstra wrote: > On Thu, 2010-05-13 at 12:48 +0200, Tejun Heo wrote: >> Concurrency managed workqueue needs to know when workers are going to >> sleep and waking up, and, when a worker goes to sleep, be able to wake >> up another worker to maintain adequate concurrency. This patch >> introduces PF_WQ_WORKER to identify workqueue workers and adds the >> following two hooks. >> >> * wq_worker_waking_up(): called when a worker is woken up. >> >> * wq_worker_sleeping(): called when a worker is going to sleep and may >> return a pointer to a local task which should be woken up. The >> returned task is woken up using try_to_wake_up_local() which is >> simplified ttwu which is called under rq lock and can only wake up >> local tasks. > > This changelog seems to lack explanation for why you need the wakeup > callback.
Because cmwq "needs to know when workers are going to sleep and waking up, and, when a worker goes to sleep, be able to wake up another worker to maintain adequate concurrency". Sure, I can add more but again forward reference here would work pretty well when digging through history.
-- tejun
| |