module IO : Numalib_raw.Io_intf.Sval node_to_cpus : node:int ‑> int list IO.tnode_to_cpus converts a node number, node, to a list of CPUs
hosted on the node
val num_configured_nodes : unit ‑> int IO.tnum_configured_nodes - number of configure nodes in the system
val num_configured_cpus : unit ‑> int IO.tnum_configured_cpus - number of configure CPUs in the system
val parse_cpustring : string ‑> int list IO.tparse_cpustring - convert a CPU specification string to a bit list. The
specification is a comma separated list of CPU numbers and ranges.
See NUMA(3) for more details
val parse_nodestring : string ‑> int list IO.tparse_nodestring - convert a node specification string to a bit list. The
specification is a comma separated list of node numbers and ranges.
See NUMA(3) for more details
val get_affinity : pid:int ‑> int list IO.tget_affinity returns the list of CPUs the process pid is bound to
val set_affinity : pid:int ‑> cpus:int list ‑> unit IO.tset_affinity sets the CPUs process pid runs on
val set_preferred_node : node:int ‑> unit IO.tset_preferred_node sets the preferred node for memory allocations
val node_size64 : node:int ‑> int IO.tnode_size64 returns the amount of memory available on a node in bytes
val node_size : node:int ‑> int IO.tnode_size returns the amount of memory available on a node in bytes
val set_strict : strict:bool ‑> unit IO.tset_strict enables or disables strict memory allocation. When strict is
true memory allocation will fail if the memory is not available on the node
val get_interleave_mask : unit ‑> int list IO.tget_interleave_mask returns the list of nodes memory will be allocated from
val set_interleave_mask : nodes:int list ‑> unit IO.tset_interleave_mask sets the list of nodes memory will be allocated from
val bind : nodes:int list ‑> unit IO.tbind binds the process to the list of nodes specified in nodes. The process
will only run on the CPUs of the specified nodes and memory will only be allocated
from these nodes.
val set_localalloc : unit ‑> unit IO.tset_localalloc sets the memory allocation policy for the calling task to local
allocation. In this mode, the preferred node for memory allocation is effectively
the node where the task is executing at the time of a page allocation.
val set_membind : nodes:int list ‑> unit IO.tset_membind binds the process to the list of nodes specified in nodes. The process
will only allocate memory on these nodes.
val get_membind : unit ‑> int list IO.tget_membind returns the list of nodes the process memory allocation is bound to
val run_on_node_mask : nodes:int list ‑> unit IO.trun_on_node_mask runs the current task on the specified nodes
val get_run_node_mask : unit ‑> int list IO.tget_run_node_mask returns the list of nodes the process will run on
val set_bind_policy : strict:bool ‑> unit IO.tset_bind_policy specifies whether calls that bind memory to a specific node should
use the preferred policy or a strict policy. The preferred policy allows the kernel to
allocate memory on other nodes when there isn't enough free on the target node. strict
will fail the allocation in that case. Setting the argument to specifies strict, 0 preferred.