Re: Very high CPU load when idle with 3.0-rc1

Paul E. McKenney
2011-05-31T01:45:51Z

On Mon, May 30, 2011 at 11:33:39PM +0200, Peter Zijlstra wrote:
> On Mon, 2011-05-30 at 14:28 -0700, Paul E. McKenney wrote:
> > On Mon, May 30, 2011 at 07:19:49PM +0200, Peter Zijlstra wrote:
> > > On Mon, 2011-05-30 at 09:23 -0700, Paul E. McKenney wrote:
> > > > sp.sched_priority = RCU_KTHREAD_PRIO;
> > > > sched_setscheduler_nocheck(t, SCHED_FIFO, &sp);
> > >
> > > Why are those things RT tasks anyway? The old ksoftirq runs as a regular
> > > task. And once you start boosting things you can boost this into FIFO as
> > > well...
> > >
> > > just wondering..
> >
> > Because priority boosting doesn't help unless the callbacks also run
> > RT priority.
> >
> > I could make it so that they ran as normal tasks if !RCU_BOOST, but
> > they would still need to run as RT tasks for RCU_BOOST. I figured
> > running them the same way in both cases would be simpler.
>
> Ah, I thought you'd boost the threads along with the waiters, to the
> same prio so that they wouldn't disturb higher priority tasks for no
> reason.

I considered that, but working out when it is OK to deboost them is
decidedly non-trivial.

Thanx, Paul