Re: [Announce] 2.6.29.3-rt12

Peter Zijlstra
2009-05-13T10:25:11Z

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