Re: [BUG] idle_balance() does not call load_balance_newidle()

From: Ingo Molnar
Date: Tue Dec 09 2008 - 01:35:26 EST



* Vaidyanathan Srinivasan <svaidy@xxxxxxxxxxxxxxxxxx> wrote:

> * Ingo Molnar <mingo@xxxxxxx> [2008-12-08 16:49:39]:
>
> >
> > * Vaidyanathan Srinivasan <svaidy@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > > Hi,
> > >
> > > load_balance_newidle() does not get called if SD_BALANCE_NEWIDLE is
> > > set at higher level domain (3-CPU) and not in low level domain (2-MC).
> > >
> > > pulled_task is initialised to -1 and checked for non-zero which is
> > > always true if the lowest level sched_domain does not have
> > > SD_BALANCE_NEWIDLE flag set.
> > >
> > > Trivial fix to initialise pulled_task to zero.
> > > Patch against 2.6.28-rc7
> >
> > applied to tip/sched/core, thanks! (Not for v2.6.28 because this could
> > affect performance.)
>
> Thanks Ingo. This patch does not change any functionality in v2.6.28
> and hence will not affect performance. The SD flags are not touched. I
> found this bug while setting different SD flags at MC level and CPU
> level in my power saving balance patches.

if it does not change any functionality then we would not be doing the
change, right?

It does change functionality, because:

> > > load_balance_newidle() does not get called if SD_BALANCE_NEWIDLE is
> > > set at higher level domain (3-CPU) and not in low level domain
> > > (2-MC).

even though it's a bug fix, it affects how the SD flags are interpreted
and acted upon by the load balancer - i.e. the change can impact
performance.

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