Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Feb 2004 21:45:29 -0500 
From:      "Haapanen, Tom" <tomh@waterloo.equitrac.com>
To:        amd64@freebsd.org
Subject:   RE: Dual processor, AMD 64 machine freezing.
Message-ID:  <B1D77424948FD611A3B80000C0109EEF023B4D5C@SYNCRO>

next in thread | raw e-mail | index | archive | help
David O'Brien wrote: 
> Its not theory, its fact -- even w/o a NUMA aware OS.  Statistically, 1/2 
> the accesses by a CPU are to local memory, 1/2 to distant memory.  If 
> you put all them memory on a single CPU then you've got two 
> processors trying to access memory, saturating the memory controller 
> on the single CPU with memory -- thus giving you less BW.  Your diagram 
> above leaves out the memory controller (and its request buffer).

But isn't that (the 50-50 CPU memory access split) assuming that there is no
CPU-awareness in memory allocation?

Suppose that I have process/thread X running on CPU 1, and the OS kernel is
clever enough to allocate physical pages located on CPU 1's memory bank
whenever thread X requests new memory.  In that scenario, wouldn't it be
reasonable to assume that more than 50% of memory accesses are local?

Of course, having processes and/or threads that have CPU affinity would help
a whole lot, too.

Is this ...

(a) an incorrect assumption; or

(b) impractical to implement, given virtual memory etc.?

Tom



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B1D77424948FD611A3B80000C0109EEF023B4D5C>