Messages in this thread | | | Date | Sat, 17 Nov 2007 13:55:11 -0500 (EST) | From | Steven Rostedt <> | Subject | Re: [PATCH v3 17/17] (Avoid overload) |
| |
On Sat, 17 Nov 2007, Gregory Haskins wrote:
> >>> On Sat, Nov 17, 2007 at 1:33 AM, in message > > This patch changes the searching for a run queue by a waking RT task > > to try to pick another runqueue if the currently running task > > is an RT task. > > > > The reason is that RT tasks behave different than normal > > tasks. Preempting a normal task to run a RT task to keep > > its cache hot is fine, because the preempted non-RT task > > may wait on that same runqueue to run again unless the > > migration thread comes along and pulls it off. > > > > RT tasks behave differently. If one is preempted, it makes > > an active effort to continue to run. So by having a high > > priority task preempt a lower priority RT task, that lower > > RT task will then quickly try to run on another runqueue. > > This will cause that lower RT task to replace its nice > > hot cache (and TLB) with a completely cold one. This is > > for the hope that the new high priority RT task will keep > > its cache hot. > > > > Remeber that this high priority RT task was just woken up. > > So it may likely have been sleeping for several milliseconds, > > and will end up with a cold cache anyway. RT tasks run till > > they voluntarily stop, or are preempted by a higher priority > > task. This means that it is unlikely that the woken RT task > > will have a hot cache to wake up to. So pushing off a lower > > RT task is just killing its cache for no good reason. > > You make some excellent points here. Out of curiosity, have you tried a comparison to see if it helps?
hehe, I was waiting for the "where's the numbers". Right now I don't have them. Mainly because I don't have boxes with more that 4 CPUs on them. And 4 really doesn't make much of a difference.
If others out there would like to test, I'll write up a couple of versions of this code and that way we can really get numbers for them.
Or perhaps someone would like to send me a 16way box. Although my wife would kill me. ;-)
Hmm, I'm sure I can get to our lab and run some tests too.
-- Steve
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |