Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Jan 2014 00:03:46 -0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        Andrew Bates <andrewbates09@gmail.com>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Working on NUMA support
Message-ID:  <CAJ-VmonJPT-NUSi=Wnu7a0oNwe8V=LQMZ-fZGriC7H44edRVLg@mail.gmail.com>
In-Reply-To: <CAPi5LmkRO4QLbR2JQV8FuT=jw2jjcCRbP8jT0kj1g8Ks%2B7jv8A@mail.gmail.com>
References:  <CAPi5LmkRO4QLbR2JQV8FuT=jw2jjcCRbP8jT0kj1g8Ks%2B7jv8A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Cool! Do you have any working code to implement the API, or is this
just in the design phase right now?


-a


On 6 January 2014 12:11, Andrew Bates <andrewbates09@gmail.com> wrote:
> Hey all,
>
> My name is Andrew Bates, and I would like to take a bit of your time to
> talk about NUMA support.
>
> Supporting Non-Uniform Memory Access in FreeBSD is something that has bee=
n
> brought up in the past <
> http://freebsd.1045724.n5.nabble.com/NUMA-Support-is-there-in-FreeBSD-td4=
865200.html>.
> This is becoming increasingly important now that multiprocessor
> systems
> are an expanding technology, thus performance is scaling in terms of cpu
> count, rather than just clock rate.
>
> There is a great opportunity here to optimize performance.  After being
> asked to look into this by the EMC Isilon Storage Division, myself and a
> few colleagues advised by Andrew Pilloud and Jeff Roberson would like to
> propose APIs to handle basic memory allocation/management to specific NUM=
A
> domains.
>
> What we have devised so far consists of two levels.  First there are the
> KPIs, to expose NUMA functionality at a thread level of domain affinity.
>  Secondly, there would be a userspace/interface to take advantage of the
> proposed APIs, thus giving users the capability to make their application=
s
> NUMA-aware.
>
> We took the time to look into how many other systems (Linux, Macintosh,
> Solaris, Windows) already approach this problem, so there are some aspect=
s
> of our solution that are similar to how Linux and Solaris handle NUMA.
> Unlike Linux libnuma, we are only proposing a few additions and a minimal
> library that can easily be expanded later to suit users=92 needs.
>
>
> KISS in mind, we came up with the following KPI prototypes (freebsdnuma.h=
)
> to uncover NUMA in a usable fashion:
>
>
>    -
>
>    cpuset_get_memory_affinity()
>    -
>
>    cpuset_set_memory_affinity()
>    -
>
>    move_pages()
>    -
>
>    migrate_pages()
>    -
>
>    get_numa_cpus()
>    -
>
>    get_numa_weights()
>
>
> Then to the second part, we have the following userspace API prototypes
> (numanor.h) for our interface and testing purposes:
>
>
>    -
>
>    is_numa_available()
>    -
>
>    set_thread_on_domain()
>    -
>
>    set_memory_policy()
>    -
>
>    move_thread()
>
>
> In much much more detail, you can learn more about these prototypes, this
> project, view our progress, track along, and give input on our github rep=
o
> < https://github.com/andrewbates09/freebsd-numa > or simply via email. Th=
is
> repo currently includes fully commented prototypes (like a mini man page)
> and will later include additions to the project.
>
> If anyone has any comments, suggestions, concerns, quandaries, or just
> general thoughts please feel free to contact us, as we would love to hear
> your input!
>
> The Leaders: Sakire Arslan Ay, Andrew Pilloud, Jeff Roberson
> The Team: Andrew Bates, Joshua Clark, Alex Schuldberg, Dustin Walker
>
> --
> V/Respectfully,
> Andrew M Bates
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org=
"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmonJPT-NUSi=Wnu7a0oNwe8V=LQMZ-fZGriC7H44edRVLg>