31.01.2013, 20:08, "Steven Rostedt" <rostedt@xxxxxxxxxxx>: > On Mon, 2013-01-28 at 03:46 +0400, Kirill Tkhai wrote: > >> The patch aims to decrease the number of calls of push_rt_task() >> in push_rt_tasks(). >> >> It's not necessary to push more than 'num_online_cpus() - 1' tasks. >> If just pushed task doesn't leave its new CPU during our local call >> of push_rt_tasks() than we won't push another task to the CPU. >> If it leave or change priority than it will pull new task by itself. > > I'm curious. Have you hit situations where this was an issue? Or was > this just discovered by code review? No, I did't hit this situation. It's impossible to hook every situation. Thanks for your explanation. Kirill > > -- Steve > >> Signed-off-by: Kirill V Tkhai <tkhai@xxxxxxxxx> >> CC: Steven Rostedt <rostedt@xxxxxxxxxxx> >> CC: Ingo Molnar <mingo@xxxxxxxxxx> >> CC: Peter Zijlstra <peterz@xxxxxxxxxxxxx> >> CC: linux-rt-users <linux-rt-users@xxxxxxxxxxxxxxx> >> --- >> kernel/sched/rt.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c >> index 4e8f0f4..edf046d 100644 >> --- a/kernel/sched/rt.c >> +++ b/kernel/sched/rt.c >> @@ -1703,8 +1703,10 @@ out: >> >> static void push_rt_tasks(struct rq *rq) >> { >> + int num_cpus = num_online_cpus() - 1; >> + >> /* push_rt_task will return true if it moved an RT */ >> - while (push_rt_task(rq)) >> + while (push_rt_task(rq) && --num_cpus > 0) >> ; >> } -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html