Date: Wed, 12 Nov 2008 19:02:21 -0600 From: Marc Wiz <marc@wiz.com> To: freebsd-smp@freebsd.org Subject: Re: NUMA? Message-ID: <20081113010221.GB20056@wiz.com> In-Reply-To: <gffsof$vpp$1@ger.gmane.org> References: <gffsof$vpp$1@ger.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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@wiz.com Yes, that really is my last name.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081113010221.GB20056>