Re: [RFC] (How to) Let idle CPUs sleep

From: Jesse Barnes
Date: Thu May 12 2005 - 11:32:25 EST


On Thursday, May 12, 2005 9:16 am, Tony Lindgren wrote:
> * Lee Revell <rlrevell@xxxxxxxxxxx> [050512 09:05]:
> > On Thu, 2005-05-12 at 14:16 +0530, Srivatsa Vaddagiri wrote:
> > > On Wed, May 11, 2005 at 11:03:49AM -0700, Tony Lindgren wrote:
> > > > Sorry to jump in late. For embedded stuff we should be able to
> > > > skip ticks until something _really_ happens, like an interrupt.
> > > >
> > > > So we need to be able to skip ticks several seconds at a time.
> > > > Ticks should be event driven. For embedded systems option B is
> > > > really the only way to go to take advantage of the power
> > > > savings.

That seems like a lot of added complexity. Isn't it possible to go
totally tickless and actually *remove* some of the complexity of the
current design? I know Linus has frowned upon the idea in the past,
but I've had to deal with the tick code a bit in the past, and it seems
like getting rid of ticks entirely might actually simplify things (both
conceptually and code-wise).

Seems like we could schedule timer interrupts based solely on add_timer
type stuff; the scheduler could use it if necessary for load balancing
(along with fork/exec based balancing perhaps) on large machines where
load imbalances hurt throughput a lot. But on small systems if all
your processes were blocked, you'd just go to sleep indefinitely and
save a bit of power and avoid unnecessary overhead.

I haven't looked at the lastest tickless patches, so I'm not sure if my
claims of simplicity are overblown, but especially as multiprocessor
systems become more and more common it just seems wasteful to wakeup
all the CPUs every so often only to have them find that they have
nothing to do.

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