Re: [RFC PATCH v2 0/2] sched: Nominate a power-efficient ILB

Vaidyanathan Srinivasan
2009-04-26T16:56:55Z

* Suresh Siddha <suresh.b.siddha@intel.com> [2009-04-21 18:05:22]:

> On Mon, 2009-04-13 at 21:55 -0700, Gautham R Shenoy wrote:
> > Now, the other power-savings settings such as the sched_mc/smt_power_savings
> > and the power-aware IRQ balancer try to balance tasks/IRQs by taking
> > the system topology into consideration, with the intention of keeping
> > as many "power-domains" (cores/packages) in the low-power state.
> >
> > The current idle-load-balancer nomination does not necessarily align towards
> > this policy. For eg, we could be having tasks and interrupts largely running
> > on the first package with the intention of keeping the second package idle.
> > Hence, CPU 0 may be busy. The first_cpu in the nohz.cpu_mask happens to be CPU1,
> > which in-turn becomes nominated as the idle-load balancer. CPU1 being from
> > the 2nd package, would in turn prevent the 2nd package from going into a
> > deeper sleep state.
> >
> > Instead the role of the idle-load balancer could have been assumed by an
> > idle CPU from the first package, thereby helping the second package go
> > completely idle.
>
> Can we also do this by default? i.e., even when no power-savings policy
> is selected.
>
> I don't see anything wrong by enabling this logic for all the cases.

Hi Suresh,

Thanks for the review. The selection of the idle-load-balancer
depends on the sched domain level with SD_POWERSAVINGS_BALANCE flag
set that indicates the cpu-package boundary. Hence this scheme
depends on sched_mc_powersavings being non zero so that the sched
domains (cpu level) are build based on cpu-package information.

The logical-cpu to cpu-package grouping information is not readily
available (in the sched domain) when power-saving policies are off.

We may need to look at selection of idle-load-balancer for maximum
performance (bandwidth utilisation) when power save policies are off.

--Vaidy