Ingo Molnar wrote:
* Ingo Molnar <[email protected]> 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 [email protected]
"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 [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]