dwww Home | Manual pages | Find package

hwlocality...trs_manage(3)  Library Functions Manual hwlocality...trs_manage(3)

NAME
       hwlocality_memattrs_manage - Managing memory attributes

SYNOPSIS
   Enumerations
       enum hwloc_memattr_flag_e { HWLOC_MEMATTR_FLAG_HIGHER_FIRST = (1UL<<0),
           HWLOC_MEMATTR_FLAG_LOWER_FIRST = (1UL<<1),
           HWLOC_MEMATTR_FLAG_NEED_INITIATOR = (1UL<<2) }

   Functions
       int hwloc_memattr_get_name (hwloc_topology_t topology,
           hwloc_memattr_id_t attribute, const char **name)
       int hwloc_memattr_get_flags (hwloc_topology_t topology,
           hwloc_memattr_id_t attribute, unsigned long *flags)
       int hwloc_memattr_register (hwloc_topology_t topology, const char *name,
           unsigned long flags, hwloc_memattr_id_t *id)
       int hwloc_memattr_set_value (hwloc_topology_t topology,
           hwloc_memattr_id_t attribute, hwloc_obj_t target_node, struct
           hwloc_location *initiator, unsigned long flags, hwloc_uint64_t
           value)

Detailed Description
       Memory attribues are identified by an ID (hwloc_memattr_id_t) and a
       name. hwloc_memattr_get_name() and hwloc_memattr_get_by_name() convert
       between them (or return error if the attribute does not exist).

       The set of valid hwloc_memattr_id_t is a contigous set starting at 0. It
       first contains predefined attributes, as listed in hwloc_memattr_id_e
       (from 0 to HWLOC_MEMATTR_ID_MAX-1). Then custom attributes may be
       dynamically registered with hwloc_memattr_register(). They will get the
       following IDs (HWLOC_MEMATTR_ID_MAX for the first one, etc.).

       To iterate over all valid attributes (either predefined or dynamically
       registered custom ones), one may iterate over IDs starting from 0 until
       hwloc_memattr_get_name() or hwloc_memattr_get_flags() returns an error.

       The values for an existing attribute or for custom dynamically
       registered ones may be set or modified with hwloc_memattr_set_value().

Enumeration Type Documentation
   enum hwloc_memattr_flag_e
       Memory attribute flags. Given to hwloc_memattr_register() and returned
       by hwloc_memattr_get_flags().

       Enumerator

       HWLOC_MEMATTR_FLAG_HIGHER_FIRST
              The  best  nodes  for  this  memory  attribute are those with the
              higher values. For instance Bandwidth.

       HWLOC_MEMATTR_FLAG_LOWER_FIRST
              The best nodes for this memory attribute are those with the lower
              values. For instance Latency.

       HWLOC_MEMATTR_FLAG_NEED_INITIATOR
              The value returned for this memory attribute depends on the given
              initiator. For instance Bandwidth and Latency, but not Capacity.

Function Documentation
   int hwloc_memattr_get_flags (hwloc_topology_t  topology,  hwloc_memattr_id_t
       attribute, unsigned long * flags)
       Return  the  flags  of  the  given  attribute.  Flags are a OR'ed set of
       hwloc_memattr_flag_e.

       The output pointer flags cannot be NULL.

       Returns
           0 on success.

           -1 with errno set to EINVAL if the attribute does not exist.

   int hwloc_memattr_get_name  (hwloc_topology_t  topology,  hwloc_memattr_id_t
       attribute, const char ** name)
       Return the name of a memory attribute. The output pointer name cannot be
       NULL.

       Returns
           0 on success.

           -1 with errno set to EINVAL if the attribute does not exist.

   int  hwloc_memattr_register  (hwloc_topology_t  topology, const char * name,
       unsigned long flags, hwloc_memattr_id_t * id)
       Register a new memory attribute. Add  a  new  custom  memory  attribute.
       Flags  are  a  OR'ed set of hwloc_memattr_flag_e. It must contain one of
       HWLOC_MEMATTR_FLAG_HIGHER_FIRST  or  HWLOC_MEMATTR_FLAG_LOWER_FIRST  but
       not both.

       The new attribute id is immediately after the last existing attribute ID
       (which  is either the ID of the last registered attribute if any, or the
       ID of the last predefined attribute in hwloc_memattr_id_e).

       Returns
           0 on success.

           -1 with errno set to EINVAL if an invalid set of flags is given.

           -1 with errno set to EBUSY if another attribute  already  uses  this
           name.

   int  hwloc_memattr_set_value  (hwloc_topology_t topology, hwloc_memattr_id_t
       attribute, hwloc_obj_t target_node, struct hwloc_location  *  initiator,
       unsigned long flags, hwloc_uint64_t value)
       Set an attribute value for a specific target NUMA node. If the attribute
       does  not  relate  to  a  specific  initiator (it does not have the flag
       HWLOC_MEMATTR_FLAG_NEED_INITIATOR), location initiator  is  ignored  and
       may be NULL.

       The  initiator  will be copied into the topology, the caller should free
       anything allocated to store the initiator, for instance the cpuset.

       target_node cannot be NULL.

       attribute     cannot     be     ::HWLOC_MEMATTR_FLAG_ID_CAPACITY      or
       ::HWLOC_MEMATTR_FLAG_ID_LOCALITY.

       flags must be 0 for now.

       Note
           The initiator initiator should be of type HWLOC_LOCATION_TYPE_CPUSET
           when    referring    to    accesses    performed   by   CPU   cores.
           HWLOC_LOCATION_TYPE_OBJECT is currently unused internally by  hwloc,
           but  users  may  for  instance  use it to provide custom information
           about host memory accesses performed by GPUs.

       Returns
           0 on success or -1 on error.

Author
       Generated automatically by Doxygen for Hardware  Locality  (hwloc)  from
       the source code.

Hardware Locality (hwloc)        Version 2.12.0      hwlocality...trs_manage(3)

Generated by dwww version 1.16 on Sat Oct 3 07:36:02 CEST 2026.