NUMA?
Julian Elischer
julian at elischer.org
Wed Nov 12 17:19:03 PST 2008
Ivan Voras wrote:
> Hi,
I did the AMD course a few weeks ago so I'm also very interested in this..
>
> 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
at a minimum, this is needed before anything else can really work.
> 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
In some cases it may be worth having multiple copies of teh read-only
text segments.
For example, it may eventually be worth having a /bin/sh text segment
in each CPU's memory space.
> 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
this is where it really starts getting hairy.. when do you migrate a
process? and what if there are as many threads runnable as processors?
> 4) allocate new pages for a proc from its node's memory range(s) if at
> all possible.
>
> Is this all?
There are other interesting effects too..
assigning network interrupts to processors that have good access to
the hardware AND the destination if you can..
>
> On the other hand, did someone do a study of performance increase for
> todays "consumer" NUMA systems (e.g. 2-4 sockets/nodes x86/x64 systems)
> - is it worth it?
caches hide a multitude of sins..
>
> _______________________________________________
> freebsd-smp at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-smp
> To unsubscribe, send any mail to "freebsd-smp-unsubscribe at freebsd.org"
More information about the freebsd-smp
mailing list