Re: [patch] RT: calc_load() uses wrong variable to calculate RTload

From: Thomas Gleixner
Date: Wed May 06 2009 - 04:45:39 EST


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@xxxxxxxxxxx>
>
> ---
>
> 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;
>
>
--
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/