lkml.org 
[lkml]   [2008]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [BUG] idle_balance() does not call load_balance_newidle()

* Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> wrote:

> * Ingo Molnar <mingo@elte.hu> [2008-12-08 16:49:39]:
>
> >
> > * Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> 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


\
 
 \ /
  Last update: 2008-12-09 07:37    [W:0.051 / U:1.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site