Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Apr 2013 11:32:08 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org
Cc:        Robert Waksmundzki <waksmundzki@gmail.com>
Subject:   Re: NUMA, cpuset and malloc
Message-ID:  <201304221132.08194.jhb@freebsd.org>
In-Reply-To: <D2C5ECBF-1D71-4E58-93D8-E670CD55E27D@gmail.com>
References:  <D2C5ECBF-1D71-4E58-93D8-E670CD55E27D@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday, April 20, 2013 6:43:26 pm Robert Waksmundzki wrote:
> On NUMA systems allocated memory is striped across local and non-local banks 
in order to have consistent performance in case the task is rescheduled to a 
different CPU socket.
> When a process is pinned to a single CPU socket with cpuset having the 
memory allocator prefer local banks would probably improve performance. 
Default system behavior would stay the same and the optimization would only be 
triggered on big multi socket systems when administrator used cpuset (command 
mostly used for performance optimization anyway).
> 
> Is this something currently implemented in FreeBSD? Is this even a good 
idea?

You can get something sort of like this by enabling NUMA in your kernel (9.0 
and later) and always pinning your processes with cpuset.  (The simple NUMA
bits always allocate memory in the memory domain the current thread is
running in at the time of the fault.)

-- 
John Baldwin



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