From owner-freebsd-amd64@FreeBSD.ORG Sun Feb 1 18:47:02 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DAC2E16A4CE for ; Sun, 1 Feb 2004 18:47:02 -0800 (PST) Received: from omega.metrics.com (ns.metrics.com [204.138.110.200]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9B2B443D3F for ; Sun, 1 Feb 2004 18:47:01 -0800 (PST) (envelope-from tomh@waterloo.equitrac.com) Received: from syncro.metrics.com ([192.168.96.20]) by omega.metrics.com (8.9.3/8.9.3) with ESMTP id VAA13204 for ; Sun, 1 Feb 2004 21:47:01 -0500 (EST) Received: by SYNCRO with Internet Mail Service (5.5.2653.19) id ; Sun, 1 Feb 2004 21:45:35 -0500 Message-ID: From: "Haapanen, Tom" To: amd64@freebsd.org Date: Sun, 1 Feb 2004 21:45:29 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Subject: RE: Dual processor, AMD 64 machine freezing. X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2004 02:47:03 -0000 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