Re: Scheduling the highest priority task

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02.08.2007 21:48, Ingo Molnar wrote:
* Martin Roehricht <[email protected]> wrote:

On 08/02/2007 05:19 PM, Ingo Molnar wrote:
>* Martin Roehricht <[email protected]> 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«.

oh, sorry, that was meant to be the 'highest priority one' :-/

so i think you got it all right, i just typoed that first sentence.

Okay, now I think I understood this part of the code correctly. The reason why I observe a continous migration of the _lower_ priority tasks is most probably due to the fact that the higher priority one is currently running, according to:
	can_migrate_task() in move_tasks(), and therein:

	if (task_running(rq, p))
		return 0;

I tracked down via an extended /proc/schedstats that my tasks fall frequently into this pitfall. I basically solved it by making use of the more active push-strategy which is called later by load_balance() once the move_tasks() function did not succeed. So in case I need the higher priority tasks, I return immediately from move_tasks().

Thanks for your help,
Martin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux