HomeFreeBSD

Allow empty NUMA memory domains to support Threadripper2

Description

Allow empty NUMA memory domains to support Threadripper2

The AMD Threadripper 2990WX is basically a slightly crippled Epyc.
Rather than having 4 memory controllers, one per NUMA domain, it has
only 2 memory controllers enabled. This means that only 2 of the
4 NUMA domains can be populated with physical memory, and the
others are empty.

Add support to FreeBSD for empty NUMA domains by:

  • creating empty memory domains when parsing the SRAT table, rather than failing to parse the table
  • not running the pageout deamon threads in empty domains
  • adding defensive code to UMA to avoid allocating from empty domains
  • adding defensive code to cpuset to avoid binding to an empty domain Thanks to Jeff for suggesting this strategy.

Reviewed by: alc, markj
Approved by: re (gjb@)
Differential Revision: https://reviews.freebsd.org/D1683

Details

Provenance
gallatinAuthored on
Reviewer
alc
Differential Revision
D1683: www/firefox et al.: add ARM build fixes
Parents
rS339042: Mitigate providing a timing signal if the COOKIE or AUTH
Branches
Unknown
Tags
Unknown