Re: [patch 6/8] pull RT tasks

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Steven Rostedt <rostedt@...>
Cc: LKML <linux-kernel@...>, RT <linux-rt-users@...>, Linus Torvalds <torvalds@...>, Andrew Morton <akpm@...>, Ingo Molnar <mingo@...>, Thomas Gleixner <tglx@...>, Gregory Haskins <ghaskins@...>, Peter Zijlstra <a.p.zijlstra@...>
Date: Sunday, October 21, 2007 - 5:35 am

Hi Steven,


I think, 2 things should be accomplished here :

(1) be sure to pull the _highest_ prio task ;

i.e. the _highest_ prio task amongst all runnable (but not running) RT
tasks across all the run-queues which is capable of running on
this_cpu ;

(2) don't pull more than 1 task at once.

that said, just pull the highest prio task and run it.

---

why (2)? Just to avoid situations when tasks are being pulled/pushed
back and forth between run-queues.

Let's say we have 4 cpu system:

0:  task(10) , task(92)
1:  task(10), task(91)
2:  task(10), task(90)
3:  task(10)

when task(10) on cpu#3 is inactive, we pull task(92), task(91),
task(90) and then run task(90)... in the mean time, some of cpu[0..2]
becomes inactive and pull task(91) and task(92) back and run them...
that may repeat again and again depending on when/how long task(10)
run on their corresponding cpus...

so it seems to me that the more optimal behavior would be "don't pull
more than you can run at the moment -- that's 1".

to this goal, something like find_lock_highest_rq() would be necessary.

and I guess, {get,put}_task_struct() should be used in pull_rt_task()
for the 'next' in a similar way as it's done in push_rt_task() .



-- 
Best regards,
Dmitry Adamushko
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 6/8] pull RT tasks, Steven Rostedt, (Fri Oct 19, 2:43 pm)
Re: [patch 6/8] pull RT tasks, Dmitry Adamushko, (Sun Oct 21, 7:59 am)
Re: [patch 6/8] pull RT tasks, Steven Rostedt, (Mon Oct 22, 10:05 am)
Re: [patch 6/8] pull RT tasks, Dmitry Adamushko, (Mon Oct 22, 6:34 pm)
Re: [patch 6/8] pull RT tasks, Steven Rostedt, (Mon Oct 22, 9:16 pm)
Re: [patch 6/8] pull RT tasks, Dmitry Adamushko, (Sun Oct 21, 5:35 am)
Re: [patch 6/8] pull RT tasks, Steven Rostedt, (Mon Oct 22, 9:55 am)
Re: [patch 6/8] pull RT tasks, Peter Zijlstra, (Fri Oct 19, 3:24 pm)
Re: [patch 6/8] pull RT tasks, Peter Zijlstra, (Fri Oct 19, 3:35 pm)
Re: [patch 6/8] pull RT tasks, Steven Rostedt, (Fri Oct 19, 3:43 pm)