Re: [Announce] 2.6.29.3-rt12

Thomas Gleixner
2009-05-13T11:07:01Z

On Wed, 13 May 2009, Peter Zijlstra wrote:
> On Wed, 2009-05-13 at 12:19 +0200, Thomas Gleixner wrote:
> > On Wed, 13 May 2009, Hugo Vincent wrote:
> > > This patch resulted in a broken build for me, until I did this:
> > >
> > > --- a/patch-2.6.29.3-rt12
> > > +++ b/patch-2.6.29.3-rt12
> > > @@ -121754,7 +121754,7 @@ Index: linux-2.6-tip/kernel/sched.c
> > > }
> > >
> > > /*
> > > -@@ -2801,6 +3177,15 @@ static void update_cpu_load(struct rq *t
> > > +@@ -2801,6 +3177,17 @@ static void update_cpu_load(struct rq *t
> > > new_load += scale-1;
> > > this_rq->cpu_load[i] = (old_load*(scale-1) + new_load) >> i;
> > > }
> > > @@ -121765,8 +121765,10 @@ Index: linux-2.6-tip/kernel/sched.c
> > > + this_rq->calc_load_update += LOAD_FREQ;
> > > + calc_load_account_active(this_rq);
> > > +
> > > ++#ifdef CONFIG_SMP
> > > + if (this_rq->cpu == calc_load_cpu)
> > > + calc_global_load();
> > > ++#endif
> > > }
> >
> > Darn. the patch is halfways right. the #ifdef needs to be only around
> > the if() line. Otherwise your /proc/loadavg values will never be
> > updated. I'll push out -rt13 with the proper fix..
>
> if (cpu_of(this_rq) == calc_load_cpu)
>
> to reduce if-deffery

That's what I did :)