Re: Scheduling the highest priority task

From: Martin Roehricht
Date: Thu Aug 02 2007 - 11:14:22 EST


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

On 08/02/2007 01:40 PM, Ingo Molnar wrote:
>in the SMP migration code, the 'old scheduler' indeed picks the lowest >priority one, _except_ if that task is running on another CPU or is too >'cache hot':

But why is it, that the scheduler picks the lowest priority one? I thought sched_find_first_bit() picks the index of the lowest order bit in the bitmap and thus the highest priority job. Is that wrong? What needs to be changed to let the scheduler pick the highest priority task from a given runqueue? I am very confused ...

it first picks the lowest index (i.e. the highest priority active priority-queue), but within those tasks (each task in that priority queue has equal priority) the load-balancer has freedom to pick any. Based on performance data we went for picking from the tail of the queue.

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?

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/