Re: [rfc][patch] sched: remove smpnice

From: Peter Williams
Date: Tue Feb 14 2006 - 19:07:31 EST


Paul Jackson wrote:
Peter wrote:

In these circumstances, moving the task to an idle CPU should be a "good thing" unless the time taken for the move is longer than the time that will pass before the task becomes the running task on its current CPU.


Even then, it's not always a "good thing".

The less of the cache-memory hierarchy the two CPUs share, the greater
the penalty to the task for memory accesses after the move.

At one extreme, two hyperthreads on the same core share essentially all
the memory hierarchy, so have no such penalty.

At the other extreme, two CPUs at opposite ends of a big NUMA box have,
so far as performance is concerned, quite different views of the memory
hierarchy. A task moved to a far away CPU will be cache cold for
several layers of core, package, board, and perhaps router hierarchy,
and have slower access to its main memory pages.

This will complicate things IF we end up having to introduce an "is it worth moving this particular task" test to move_tasks() in addition to the "cache hot" test. E.g. "will it take longer for this task to do something useful on its new CPU than if we leave it here?" would obviously have to take into account any delay in accessing memory as a result of the move. Hopefully it won't come to that :-).

Peter
--
Peter Williams pwil3058@xxxxxxxxxxxxxx

"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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/