Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-21 Thread Tejun Heo
Hey, On Wed, May 21, 2014 at 03:29:08PM +0800, Lai Jiangshan wrote: > Should we reorder the pwq_adjust_max_active() to avoid this declare? > (Move pwq_adjust_max_active() to the place just before rcu_free_pwq()) Yeah, sure. Sounds good to me. Thanks. -- tejun -- To unsubscribe from this list:

Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-21 Thread Lai Jiangshan
On 05/17/2014 12:16 AM, Frederic Weisbecker wrote: > @@ -3708,6 +3712,13 @@ static void rcu_free_pwq(struct rcu_head *rcu) > container_of(rcu, struct pool_workqueue, rcu)); > } > > +static struct pool_workqueue *oldest_pwq(struct workqueue_struct *wq) > +{ > + return l

Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-20 Thread Frederic Weisbecker
On Tue, May 20, 2014 at 10:35:34AM -0400, Tejun Heo wrote: > Hello, > > On Tue, May 20, 2014 at 04:32:31PM +0200, Frederic Weisbecker wrote: > > > But that's the same for other pwqs too. Back-to-back requeueing will > > > hold back pwq switching on any workqueue. > > > > I don't think so, becaus

Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-20 Thread Tejun Heo
Hello, On Tue, May 20, 2014 at 04:32:31PM +0200, Frederic Weisbecker wrote: > > But that's the same for other pwqs too. Back-to-back requeueing will > > hold back pwq switching on any workqueue. > > I don't think so, because non ordered pwqs aren't created with 0 max_active, > so they can run be

Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-20 Thread Frederic Weisbecker
On Mon, May 19, 2014 at 04:15:31PM -0400, Tejun Heo wrote: > Hello, > > On Sat, May 17, 2014 at 03:41:55PM +0200, Frederic Weisbecker wrote: > > > > - last_pool = get_work_pool(work); > > > > + last_pool = wq->flags & __WQ_ORDERED ? NULL : > > > > get_work_pool(work); > > > >

Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-19 Thread Tejun Heo
Hello, On Sat, May 17, 2014 at 03:41:55PM +0200, Frederic Weisbecker wrote: > > > - last_pool = get_work_pool(work); > > > + last_pool = wq->flags & __WQ_ORDERED ? NULL : get_work_pool(work); > > > if (last_pool && last_pool != pwq->pool) { > > > struct worker *worker; > > > > I'm not

Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-17 Thread Frederic Weisbecker
On Fri, May 16, 2014 at 04:12:25PM -0400, Tejun Heo wrote: > Hello, > > On Fri, May 16, 2014 at 06:16:51PM +0200, Frederic Weisbecker wrote: > > From: Lai Jiangshan > > > > Changing the attributions of a workqueue imply the addition of new pwqs > > to replace the old ones. But the current implem

Re: [PATCH 1/5] workqueue: Allow changing attributions of ordered workqueues

2014-05-16 Thread Tejun Heo
Hello, On Fri, May 16, 2014 at 06:16:51PM +0200, Frederic Weisbecker wrote: > From: Lai Jiangshan > > Changing the attributions of a workqueue imply the addition of new pwqs > to replace the old ones. But the current implementation doesn't handle > ordered workqueues because they can't carry mul