4285ch01.fm Draft Document for Review May 4, 2007 11:35 am
10 Linux Performance and Tuning Guidelines
Figure 1-8 Linux kernel 2.6 O(1) scheduler

Another significant advantage of the new scheduler is the support for Non-Uniform Memory

Architecture (NUMA) and symmetric multithreading processors, such as Intel®

Hyper-Threading technology.

The improved NUMA support ensures that load balancing will not occur across NUMA nodes

unless a node gets overburdened. This mechanism ensures that traffic over the comparatively

slow scalability links in a NUMA system are minimized. Although load balancing across

processors in a scheduler domain group will be load balanced with every scheduler tick,

workload across scheduler domains will only occur if that node is overloaded and asks for

load balancing.

Figure 1-9 Architecture of the O(1) CPU scheduler on an 8-way NUMA based system with
Hyper-Threading enabled
priority0
:
priority 139
priority0
:
priority 139
P
PP P
activeexpiredarray[0]array[1] PP
:
:
PP P
priority0
:
priority 139
priority0
:
priority 139
P
PP P
activeexpiredarray[0]array[1] PP
:
:
PP P
Two node xSeries 445 (8 CPU)
One CEC (4 CPU)
One Xeon MP (HT)
One HT CPU
Parent
Scheduler
Domain
Child
Scheduler
Domain
Scheduler
Domain
GroupLogicalCPU
Load balancing
only if a child
is overburdened
Load balancing
via scheduler_tick()
and time slice
Load balancing
via scheduler_tick()
1
2
3
1
2
3
1
2
3
1
2
1
2
1
2
1
2
1
2
1
2