Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v1.8

  |   Home   |   Support   |   FAQ   |  
Interoperability with Linux libnuma unsigned long masks

Functions

static __hwloc_inline int hwloc_cpuset_to_linux_libnuma_ulongs (hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, unsigned long *mask, unsigned long *maxnode)
 
static __hwloc_inline int hwloc_nodeset_to_linux_libnuma_ulongs (hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, unsigned long *mask, unsigned long *maxnode)
 
static __hwloc_inline int hwloc_cpuset_from_linux_libnuma_ulongs (hwloc_topology_t topology, hwloc_cpuset_t cpuset, const unsigned long *mask, unsigned long maxnode)
 
static __hwloc_inline int hwloc_nodeset_from_linux_libnuma_ulongs (hwloc_topology_t topology, hwloc_nodeset_t nodeset, const unsigned long *mask, unsigned long maxnode)
 

Detailed Description

This interface helps converting between Linux libnuma unsigned long masks and hwloc cpusets and nodesets.

It also offers a consistent behavior on non-NUMA machines or non-NUMA-aware kernels by assuming that the machines have a single NUMA node.

Note
Topology topology must match the current machine.
The behavior of libnuma is undefined if the kernel is not NUMA-aware. (when CONFIG_NUMA is not set in the kernel configuration). This helper and libnuma may thus not be strictly compatible in this case, which may be detected by checking whether numa_available() returns -1.

Function Documentation

static __hwloc_inline int hwloc_cpuset_from_linux_libnuma_ulongs ( hwloc_topology_t  topology,
hwloc_cpuset_t  cpuset,
const unsigned long *  mask,
unsigned long  maxnode 
)
static

Convert the array of unsigned long mask into hwloc CPU set.

mask is a array of unsigned long that will be read. maxnode contains the maximal node number that may be read in mask.

This function may be used after calling get_mempolicy or any other function that takes an array of unsigned long as output parameter (and possibly a maximal node number as input parameter).

static __hwloc_inline int hwloc_cpuset_to_linux_libnuma_ulongs ( hwloc_topology_t  topology,
hwloc_const_cpuset_t  cpuset,
unsigned long *  mask,
unsigned long *  maxnode 
)
static

Convert hwloc CPU set cpuset into the array of unsigned long mask.

mask is the array of unsigned long that will be filled. maxnode contains the maximal node number that may be stored in mask. maxnode will be set to the maximal node number that was found, plus one.

This function may be used before calling set_mempolicy, mbind, migrate_pages or any other function that takes an array of unsigned long and a maximal node number as input parameter.

static __hwloc_inline int hwloc_nodeset_from_linux_libnuma_ulongs ( hwloc_topology_t  topology,
hwloc_nodeset_t  nodeset,
const unsigned long *  mask,
unsigned long  maxnode 
)
static

Convert the array of unsigned long mask into hwloc NUMA node set.

mask is a array of unsigned long that will be read. maxnode contains the maximal node number that may be read in mask.

This function may be used after calling get_mempolicy or any other function that takes an array of unsigned long as output parameter (and possibly a maximal node number as input parameter).

static __hwloc_inline int hwloc_nodeset_to_linux_libnuma_ulongs ( hwloc_topology_t  topology,
hwloc_const_nodeset_t  nodeset,
unsigned long *  mask,
unsigned long *  maxnode 
)
static

Convert hwloc NUMA node set nodeset into the array of unsigned long mask.

mask is the array of unsigned long that will be filled. maxnode contains the maximal node number that may be stored in mask. maxnode will be set to the maximal node number that was found, plus one.

This function may be used before calling set_mempolicy, mbind, migrate_pages or any other function that takes an array of unsigned long and a maximal node number as input parameter.