Messages in this thread | | | Date | Wed, 6 May 2009 10:44:59 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [patch] RT: calc_load() uses wrong variable to calculate RT load |
| |
On Tue, 5 May 2009, Frank Rowand wrote:
> In calc_load() use RT tasks to calculate the RT load. > > Signed-off-by: Frank Rowand <frank.rowand@am.sony.com> > > --- > > Ingo, > > In calc_load(): > > #ifdef CONFIG_PREEMPT_RT > active_rt_tasks = count_active_rt_tasks(); > #endif > > but active_rt_tasks is then not used. I have not read through enough code > to verify my supposition, but the obvious use of this variable would be for > the calculation of the RT load average. > > If my supposition is correct, this patch fixes the problem.
Yep, that's correct. Though I ponder to get rid of avenrun_rt all together.
Thanks,
tglx
> The patch is compile tested only. > > -Frank Rowand > Sony Corporation of America > > > Index: linux-2.6.29.2/kernel/timer.c > =================================================================== > --- linux-2.6.29.2.orig/kernel/timer.c > +++ linux-2.6.29.2/kernel/timer.c > @@ -1249,9 +1249,9 @@ static inline void calc_load(unsigned lo > CALC_LOAD(avenrun[1], EXP_5, active_tasks); > CALC_LOAD(avenrun[2], EXP_15, active_tasks); > #ifdef CONFIG_PREEMPT_RT > - CALC_LOAD(avenrun_rt[0], EXP_1, active_tasks); > - CALC_LOAD(avenrun_rt[1], EXP_5, active_tasks); > - CALC_LOAD(avenrun_rt[2], EXP_15, active_tasks); > + CALC_LOAD(avenrun_rt[0], EXP_1, active_rt_tasks); > + CALC_LOAD(avenrun_rt[1], EXP_5, active_rt_tasks); > + CALC_LOAD(avenrun_rt[2], EXP_15, active_rt_tasks); > #endif > count += LOAD_FREQ; > >
| |