[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <48F793F8.8090806@linux-foundation.org>
Date: Thu, 16 Oct 2008 14:20:24 -0500
From: Christoph Lameter <cl@...ux-foundation.org>
To: Oliver Weihe <o.weihe@...tacomputer.de>
CC: Andrew Morton <akpm@...ux-foundation.org>,
lkml <linux-kernel@...r.kernel.org>
Subject: Re: Fw: NUMA allocator on Opteron systems does non-local allocation
on node0
> I've notived that the memory allocation on NUMA systems (Opterons) does
> memory allocation on non-local nodes for processes running node0 even if
> local memory is available. (Kernel 2.6.25 and above)
How much local memory is available? 8GB per node? That means there will be 4GB
on node 0 in ZONE_DMA32 and 4GB in ZONE_NORMAL. Other nodes will have 8GB in
ZONE_NORMAL.
> In my setup I'm allocating an array of ~7GiB memory size in a
> singlethreaded application.
> Startup: numactl --cpunodebind=X ./app
> For X=1,2,3 it works as expected, all memory is allocated on the local
> node.
> For X=0 I can see the memory beeing allocated on node0 as long as ~3GiB
> are "free" on node0. At this point the kernel starts using memory from
> node1 for the app!
NUMA only supports memory policies for the highest zone which is
ZONE_NORMAL here. Only 4GB of ZONE_NORMAL are available on node 0, so it will
go off node after that memory is exhausted. This is done in order to preserve
the lower 4GB for I/O to 32 bit devices.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists