Messages in this thread | | | Date | Thu, 4 Apr 2013 07:12:29 -0700 | From | Tejun Heo <> | Subject | Re: [PATCH 1/7] workqueue: add __WQ_FREEZING and remove POOL_FREEZING |
| |
Hello, Lai.
On Thu, Apr 04, 2013 at 10:05:32AM +0800, Lai Jiangshan wrote: > @@ -4757,25 +4747,16 @@ void thaw_workqueues(void) > { > struct workqueue_struct *wq; > struct pool_workqueue *pwq; > - struct worker_pool *pool; > - int pi; > > mutex_lock(&wq_pool_mutex); > > if (!workqueue_freezing) > goto out_unlock; > > - /* clear FREEZING */ > - for_each_pool(pool, pi) { > - spin_lock_irq(&pool->lock); > - WARN_ON_ONCE(!(pool->flags & POOL_FREEZING)); > - pool->flags &= ~POOL_FREEZING; > - spin_unlock_irq(&pool->lock); > - } > - > /* restore max_active and repopulate worklist */ > list_for_each_entry(wq, &workqueues, list) { > mutex_lock(&wq->mutex); > + wq->flags &= ~__WQ_FREEZING;
I want an assertion here. Maybe we can fold the next patch into this one and add WARN_ON_ONCE() here?
> for_each_pwq(pwq, wq) > pwq_adjust_max_active(pwq); > mutex_unlock(&wq->mutex);
Thanks.
-- tejun
| |