Re: [RFC PATCH] rcu: move SRCU grace period work to power efficientworkqueue

From: Paul E. McKenney
Date: Mon Feb 10 2014 - 13:47:47 EST


On Mon, Feb 10, 2014 at 06:08:31PM +0800, Lai Jiangshan wrote:
> Acked-by: Lai Jiangshan <laijs@xxxxxxxxxxxxxx>

Thank you all, queued for 3.15.

We should also have some facility for moving the SRCU workqueues to
housekeeping/timekeeping kthreads in the NO_HZ_FULL case. Or does
this patch already have that effect?

Thanx, Paul

> On 02/01/2014 03:53 AM, Zoran Markovic wrote:
> > From: Shaibal Dutta <shaibal.dutta@xxxxxxxxxxxx>
> >
> > For better use of CPU idle time, allow the scheduler to select the CPU
> > on which the SRCU grace period work would be scheduled. This improves
> > idle residency time and conserves power.
> >
> > This functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.
> >
> > Cc: Lai Jiangshan <laijs@xxxxxxxxxxxxxx>
> > Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
> > Cc: Dipankar Sarma <dipankar@xxxxxxxxxx>
> > Signed-off-by: Shaibal Dutta <shaibal.dutta@xxxxxxxxxxxx>
> > [zoran.markovic@xxxxxxxxxx: Rebased to latest kernel version. Added commit
> > message. Fixed code alignment.]
> > ---
> > kernel/rcu/srcu.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/kernel/rcu/srcu.c b/kernel/rcu/srcu.c
> > index 3318d82..a1ebe6d 100644
> > --- a/kernel/rcu/srcu.c
> > +++ b/kernel/rcu/srcu.c
> > @@ -398,7 +398,7 @@ void call_srcu(struct srcu_struct *sp, struct rcu_head *head,
> > rcu_batch_queue(&sp->batch_queue, head);
> > if (!sp->running) {
> > sp->running = true;
> > - schedule_delayed_work(&sp->work, 0);
> > + queue_delayed_work(system_power_efficient_wq, &sp->work, 0);
> > }
> > spin_unlock_irqrestore(&sp->queue_lock, flags);
> > }
> > @@ -674,7 +674,8 @@ static void srcu_reschedule(struct srcu_struct *sp)
> > }
> >
> > if (pending)
> > - schedule_delayed_work(&sp->work, SRCU_INTERVAL);
> > + queue_delayed_work(system_power_efficient_wq,
> > + &sp->work, SRCU_INTERVAL);
> > }
> >
> > /*
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/