Linus, Ingo,
Attached is a small patch which provides NUMA awareness to the
O(1) scheduler. This patch retains the identical O(1) scheduler
behavior for SMP systems. For multi-node systems it favors
runqueues on the current node when looking for another runqueue
to pull tasks from. It also makes a balance decision at exec().
This patch is against 2.5.43.
On NUMA systems these two changes have shown performance gains
in the 5 - 10% range depending on tests. Some micro-benchmarks
provided by Erich Focht which stress the memory subsystem show
a doubling in performance.
Please consider applying this patch.
--
Michael Hohnbaum 503-578-5486
[email protected] T/L 775-5486
> Linus, Ingo,
>
> Attached is a small patch which provides NUMA awareness to the
> O(1) scheduler. This patch retains the identical O(1) scheduler
> behavior for SMP systems. For multi-node systems it favors
> runqueues on the current node when looking for another runqueue
> to pull tasks from. It also makes a balance decision at exec().
> This patch is against 2.5.43.
>
> On NUMA systems these two changes have shown performance gains
> in the 5 - 10% range depending on tests. Some micro-benchmarks
> provided by Erich Focht which stress the memory subsystem show
> a doubling in performance.
>
> Please consider applying this patch.
FYI, to make sure there was no degrade for non numa systems, I just benched
a kernel compile on an IBM 8500R, with/without your patch. Compile times
were 38.880 (vanilla) and 38.818 (numa sched).
Andrew Theurer