Messages in this thread Patch in this message | | | Date | Tue, 5 May 2009 16:53:14 -0700 | From | Frank Rowand <> | Subject | [patch] RT: calc_load() uses wrong variable to calculate RT load |
| |
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.
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;
| |