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

From: Frank Rowand
Date: Tue May 05 2009 - 19:53:48 EST


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.

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/