Re: [PATCH] Avoid moving tasks when a schedule can be made.

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

 



* Steven Rostedt <[email protected]> wrote:

[pls. use -p when generating patches]

> @@ -1983,6 +1983,10 @@
>  
>  	curr = curr->prev;
>  
> +	/* bail if someone else woke up */
> +	if (need_resched())
> +		goto out;
> +
>  	if (!can_migrate_task(tmp, busiest, this_cpu, sd, idle, &pinned)) {
>  		if (curr != head)
>  			goto skip_queue;

even putting the problems of this approach aside (is it right to abort 
the act of load-balancing - which is a periodic activity that wont be 
restarted after this - so we lose real work), i think this will not 
solve the latency. Imagine a hardirq hitting the CPU that is executing 
move_tasks() above. We might not service that hardirq for up to 1.5 
msecs ...

i think the right approach would be to split up this work into smaller 
chunks. Or rather, lets first see how this can happen: why is 
can_migrate() false for so many tasks? Are they all cpu-hot? If yes, 
shouldnt we simply skip only up to a limit of tasks in this case - it's 
not like we want to spend 1.5 msecs searching for a cache-cold task 
which might give us a 50 usecs advantage over cache-hot tasks ...

	Ingo
-
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