Re: Scheduling the highest priority task

From: Martin Roehricht
Date: Thu Aug 02 2007 - 11:47:13 EST


On 08/02/2007 05:19 PM, Ingo Molnar wrote:
* Martin Roehricht <ml@xxxxxxxxxxx> wrote:

That's fine with me, that within the same priority-queue any task can be chosen. But assume two tasks with highly different priorities, such as 105 and 135 are scheduled on the same processor and one of them is now to be migrated -- shouldn't be the queue with task P=105 considered first for migration by this code? Both tasks would use different queues with their own linked lists, right?

yes. What makes you believe that the lower priority one (prio 135) is chosen? [ as i said before, that will only be chosen if all tasks in the higher-priority queue (prio 105) are either already running on a CPU or have recently run so that the cache-hot logic skips them. ]

This believe is primarily based on my observations of multiple benchmark runs and also on your statement earlier: »in the SMP migration code, the 'old scheduler' indeed picks the lowest priority one«.

Perhaps it is just an unfortunate coincidence that at ~90% of the time a migration decision is made, the higher priority process is currently cache hot whereas the lower priority process is not. That would be unlucky for me as I would like to decide upon specific runtime circumstances whether the highest or the lowest priority job of a runqueue should be migrated to another CPU. :-/

Martin
-
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/