Re: [PATCH RFC tip/core/rcu] accelerate grace period if last non-dynticked CPU

Andi Kleen
2010-01-27T09:43:46Z

On Tue, Jan 26, 2010 at 09:20:50PM -0800, Paul E. McKenney wrote:
> On Tue, Jan 26, 2010 at 10:30:57PM +0100, Andi Kleen wrote:
> > "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> writes:
> >
> > Kind of offtopic to the original patch, but I couldn't
> > resist...
> >
> > > +config RCU_FAST_NO_HZ
> > > + bool "Accelerate last non-dyntick-idle CPU's grace periods"
> > > + depends on TREE_RCU && NO_HZ && SMP
> >
> > Having such a thing as a config option doesn't really make
> > any sense to me. Who would want to recompile their kernel
> > to enable/disable this? If anything it should be runtime, or better
> > just unconditionally on.
>
> It adds significant overhead on entry to dyntick-idle mode for systems
> with large numbers of CPUs. :-(

Can't you simply check that at runtime then?

if (num_possible_cpus() > 20)
...

BTW the new small is large. This years high end desktop PC will come with
upto 12 CPU threads. It would likely be challenging to find a good
number for 20 that holds up with the future.

Or better perhaps have some threshold that you don't do it
that often, or only do it when you expect to be idle for a long
enough time that the CPU can enter deeper idle states

(I higher idle states some more wakeups typically don't matter
that much)

The cpufreq/cstate governour have a reasonable good idea
now how "idle" the system is and will be. Maybe you can reuse
that information somehow.

-Andi

--
ak@linux.intel.com -- Speaking for myself only.