Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
unuma.cpp File Reference
#include "precompiled.h"
#include "lib/sysdep/numa.h"
#include "lib/bits.h"
#include "lib/sysdep/os_cpu.h"
Include dependency graph for unuma.cpp:

Functions

size_t numa_NumNodes ()
 
size_t numa_NodeFromProcessor (size_t processor)
 
uintptr_t numa_ProcessorMaskFromNode (size_t node)
 
size_t numa_AvailableMemory (size_t node)
 
double numa_Factor ()
 
bool numa_IsMemoryInterleaved ()
 

Function Documentation

◆ numa_AvailableMemory()

size_t numa_AvailableMemory ( size_t  node)
Parameters
node
Returns
bytes of memory available for allocation on <node>.

◆ numa_Factor()

double numa_Factor ( )
Returns
the ratio between maximum and minimum times that one processor from each node required to fill a globally allocated array. in other words, this is the maximum slowdown for NUMA-oblivious memory accesses. Microsoft guidelines require it to be <= 3.

◆ numa_IsMemoryInterleaved()

bool numa_IsMemoryInterleaved ( )
Returns
an indication of whether memory pages are node-interleaved.

note: this requires ACPI access, which may not be available on least-permission accounts. the default is to return false so as not to cause callers to panic and trigger performance warnings.

◆ numa_NodeFromProcessor()

size_t numa_NodeFromProcessor ( size_t  processor)
Parameters
processor
Returns
node number (zero-based) to which <processor> belongs.

◆ numa_NumNodes()

size_t numa_NumNodes ( )
Returns
number of NUMA "nodes" (i.e. groups of CPUs with local memory).

◆ numa_ProcessorMaskFromNode()

uintptr_t numa_ProcessorMaskFromNode ( size_t  node)
Parameters
node
Returns
bit-mask of all processors constituting <node>.