NUMA Support is there in FreeBSD.

Arnaud Lacombe lacombar at
Mon Oct 3 17:24:42 UTC 2011


On Mon, Oct 3, 2011 at 12:31 PM,  <mdf at> wrote:
> On Mon, Oct 3, 2011 at 7:55 AM, satish kondapalli <nitw.satish at> wrote:
>> I am new to FreeBSD, I just want know whether FreeBSD supports NUMA.
>> If FreeBSD supports NUMA what are the kernel API to allocate memory?
>> is there any example driver or any driver which is using the NUMA API?
>> please provide some inputs...
> The kernel is NUMA-aware (at least for x86),
What "x86" ? i386 ? amd64 ? both ?

> and memory is allocated
> round-robin amongst the memory domains.  There are not yet any KPIs
> for allocating memory in a specific NUMA domain, nor for binding
> specific threads / processes to get their memory local to a bound cpu
> instead of round robin.
I'm not sure to follow you. Say you have 2 memory domain attached to 2
different CPU package, each providing a memory domain, 4 physical core
and eventually 8 virtual. Say you have a network adapter supporting 8
RX/TX queue, dispatching RX packet to 8 netisr. Ideally, you'd want
those 8 queue/netisr to each have an affinity for a given CPU/memory
domain, have the network adapter route flow evenly on those those 8
CPU. Now, if you allocated an mbuf from memory domain 1, and end up
being processed by a CPU in domain 0, that likely to introduce
performance penalty.

Now, what about userland ?

This is certainly an horribly big picture :/

 - Arnaud

> There have been several discussions but no one has taken the lead and
> proposed some KPIs yet.  At $WORK the round-robin is sufficient to get
> consistent performance numbers and we have not yet started any
> experimentation with binding specific threads to either CPU or memory.
> Cheers,
> matthew
> _______________________________________________
> freebsd-hackers at mailing list
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at"

More information about the freebsd-hackers mailing list