Messages in this thread | | | Date | Thu, 02 Feb 2006 12:42:05 +1100 | From | Peter Williams <> | Subject | Re: [PATCH] Avoid moving tasks when a schedule can be made. |
| |
Ingo Molnar wrote: > * Ingo Molnar <mingo@elte.hu> wrote: > > >>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 ... > > > the only legimate case where we have to skip alot of tasks is the case > when there are alot of CPU-bound (->cpus_alowed) tasks in the runqueue. > In that case the scheduler really has to skip that task. But that is not > an issue in your workload.
The new SMP nice load balancing may cause some tasks to be skipped while it's looking for ones with small enough bias_prios but I doubt that this would cause many to be skipped on a real system.
BTW why do you assume that this problem is caused by can_migrate() failing and is not just simply due to large numbers of tasks needing to be moved (which is highly likely to be true when hackbench is running)?
If it is a "skip" problem that would make the "busting it up into smaller chunks" solution more complex as it would make it desirable to remember where you were up to between chunks.
Peter -- Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious." -- Ambrose Bierce - 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/
| |