Re: [PATCH RFC nohz_full 0/7] v2 Provide infrastructure for full-systemidle

From: Christoph Lameter
Date: Mon Jul 01 2013 - 16:24:44 EST


On Mon, 1 Jul 2013, Paul E. McKenney wrote:

> On Mon, Jul 01, 2013 at 07:43:47PM +0000, Christoph Lameter wrote:
> > On Fri, 28 Jun 2013, Paul E. McKenney wrote:
> >
> > > Unfortunately, timekeeping CPU continues taking scheduling-clock
> > > interrupts even when all other CPUs are completely idle, which is
> > > not so good for energy efficiency and battery lifetime. Clearly, it
> > > would be good to turn off the timekeeping CPU's scheduling-clock tick
> > > when all CPUs are completely idle. This is conceptually simple, but
> > > we also need good performance and scalability on large systems, which
> > > rules out implementations based on frequently updated global counts of
> > > non-idle CPUs as well as implementations that frequently scan all CPUs.
> > > Nevertheless, we need a single global indicator in order to keep the
> > > overhead of checking acceptably low.
> >
> > Can we turn off timekeeping when no cpu needs time in adaptive mode?
> > Setting breakpoints in the VDSO could force timekeeping on again whenever
> > something needs time. Would this not be simpler?
>
> Might be. But what causes the breakpoints to be set on a system where
> there is one CPU-bound nohz_full user-mode task with all other CPUs idle?
> Or are you suggesting taking a breakpoint trap on each timekeeping access
> to VDSO?

Well when a tick notices that it is the last one still enabled on the
system and it could disable itself then it would set the breakpoint and
then turn the tick on the last processor off. The code invoked by the
breakpoint would reenable tick processing, update time and then use that
new info to return the correct time.

--
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/