NUMA?

Marc Wiz marc at wiz.com
Wed Nov 12 17:32:20 PST 2008


On Thu, Nov 13, 2008 at 01:35:28AM +0100, Ivan Voras wrote:
> Hi,
> 
> As even Intel's new CPUs have integrated memory controllers and thus 
> become NUMA, I'm interested in what is, in theory (I'm not proposing to 
> do it, I'm just curious), necessary to change in an OS to support NUMA. 
> My guess is:
> 
> 1) node topology detection - something similar to what ULE does but also 
> recording which memory ranges are "close" to which CPU and the 
> "distance" between nodes/CPUs
> 2) on new image load (exec), pick a node for it, among "least used" 
> nodes and record the choice per-proc; on fork, keep the new process on 
> the same node
> 3) schedule threads on a CPU from the proc's node if at all possible 
> (e.g, when a 6-core CPU is still 1 node), then on a "near" node from a 
> list of distances sorted in order of cost
> 4) allocate new pages for a proc from its node's memory range(s) if at 
> all possible.

One good source of information on this topic is IBM's AIX on the
Power 4 - 6 processors.  There is the concept of distant vs. close
memory and processors as well as what is referred to as memory
affinity.

Marc
-- 
Marc Wiz
marc at wiz.com
Yes, that really is my last name.


More information about the freebsd-smp mailing list