56 #include "hwloc/autogen/config.h"
58 #include <sys/types.h>
66 #include "hwloc/rename.h"
72 #include "hwloc/bitmap.h"
96 #define HWLOC_API_VERSION 0x00020300
105 #define HWLOC_COMPONENT_ABI 7
179 #define HWLOC_OBJ_TYPE_MIN HWLOC_OBJ_MACHINE
379 #define HWLOC_TYPE_UNORDERED INT_MAX
405 #define HWLOC_UNKNOWN_INDEX (unsigned)-1
633 #ifndef HWLOC_HAVE_32BITS_PCI_DOMAIN
652 #ifndef HWLOC_HAVE_32BITS_PCI_DOMAIN
686 struct hwloc_topology;
865 static __hwloc_inline int
881 static __hwloc_inline int
902 static __hwloc_inline int
992 hwloc_obj_t obj, const char * __hwloc_restrict separator,
1062 static __hwloc_inline const char *
1246 #ifdef hwloc_thread_t
1257 #ifdef hwloc_thread_t
1708 static __hwloc_inline void *
2457 #include "hwloc/helper.h"
2460 #include "hwloc/inlines.h"
2463 #include "hwloc/memattrs.h"
2466 #include "hwloc/export.h"
2469 #include "hwloc/distances.h"
2472 #include "hwloc/diff.h"
2475 #include "hwloc/deprecated.h"
int hwloc_type_sscanf(const char *string, hwloc_obj_type_t *typep, union hwloc_obj_attr_u *attrp, size_t attrsize) Return an object type and attributes from a type string.
enum hwloc_obj_cache_type_e hwloc_obj_cache_type_t Cache type.
@ HWLOC_MEMBIND_MIXED Returned by get_membind() functions when multiple threads or parts of a memory area have differing me... Definition: hwloc.h:1427
unsigned memory_arity Number of Memory children. These children are listed in memory_first_child. Definition: hwloc.h:471
hwloc_obj_type_t type Type of object. Definition: hwloc.h:397
unsigned char bus Definition: hwloc.h:638
unsigned char get_thisthread_cpubind Definition: hwloc.h:2031
void * hwloc_topology_get_userdata(hwloc_topology_t topology) Retrieve the topology-specific userdata pointer.
unsigned char set_thisproc_membind Definition: hwloc.h:2051
unsigned char firsttouch_membind Definition: hwloc.h:2069
unsigned linesize Cache-line size in bytes. 0 if unknown. Definition: hwloc.h:618
struct hwloc_obj_attr_u::hwloc_pcidev_attr_s pcidev
int hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t set, int flags) Bind current process or thread on cpus given in physical bitmap set.
@ HWLOC_MEMBIND_THREAD Set policy for a specific thread of the current process. This flag is mutually exclusive with HWLOC_M... Definition: hwloc.h:1453
@ HWLOC_OBJ_L2ICACHE Level 2 instruction Cache (filtered out by default). Definition: hwloc.h:220
struct hwloc_obj * memory_first_child First Memory child. NUMA nodes and Memory-side caches are listed here (memory_arity and memory_first_... Definition: hwloc.h:474
unsigned short subvendor_id Definition: hwloc.h:640
int hwloc_get_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_bitmap_t set, hwloc_membind_policy_t *policy, int flags) Query the CPUs near the physical NUMA node(s) and binding policy of the memory identified by (addr,...
struct hwloc_topology_discovery_support * discovery Definition: hwloc.h:2096
int hwloc_topology_init(hwloc_topology_t *topologyp) Allocate a topology context.
int hwloc_get_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_bitmap_t set, hwloc_membind_policy_t *policy, int flags) Query the default memory binding policy and physical locality of the specified process.
@ HWLOC_TYPE_DEPTH_PCI_DEVICE Virtual depth for PCI device object level. Definition: hwloc.h:825
struct hwloc_topology_cpubind_support * cpubind Definition: hwloc.h:2097
hwloc_obj_t hwloc_topology_insert_misc_object(hwloc_topology_t topology, hwloc_obj_t parent, const char *name) Add a MISC object as a leaf of the topology.
@ HWLOC_OBJ_OSDEV_NETWORK Operating system network device. For instance the "eth0" interface on Linux. Definition: hwloc.h:345
PCI Device specific Object Attributes. Definition: hwloc.h:632
int depth Vertical index in the hierarchy. Definition: hwloc.h:418
int hwloc_compare_types(hwloc_obj_type_t type1, hwloc_obj_type_t type2) Compare the depth of two object types.
hwloc_topology_flags_e Flags to be set onto a topology context before load. Definition: hwloc.h:1883
@ HWLOC_OBJ_PCI_DEVICE PCI device (filtered out by default). Definition: hwloc.h:269
hwloc_obj_cache_type_e Cache type. Definition: hwloc.h:326
@ HWLOC_OBJ_CORE Core. A computation unit (may be shared by several PUs, aka logical processors). Definition: hwloc.h:197
@ HWLOC_TOPOLOGY_COMPONENTS_FLAG_BLACKLIST Blacklist the target component from being used. Definition: hwloc.h:1846
unsigned char get_proc_cpubind Definition: hwloc.h:2027
Flags describing actual PU binding support for this topology. Definition: hwloc.h:2019
@ HWLOC_OBJ_OS_DEVICE Operating system device (filtered out by default). Definition: hwloc.h:279
@ HWLOC_RESTRICT_FLAG_ADAPT_IO Move I/O objects to ancestors if their parents are removed during restriction. If this flag is not se... Definition: hwloc.h:2269
hwloc_cpubind_flags_t Process/Thread binding flags. Definition: hwloc.h:1154
int hwloc_topology_restrict(hwloc_topology_t restrict topology, hwloc_const_bitmap_t set, unsigned long flags) Restrict the topology to the given CPU set or nodeset.
@ HWLOC_TYPE_DEPTH_OS_DEVICE Virtual depth for software device object level. Definition: hwloc.h:826
hwloc_cpuset_t cpuset CPUs covered by this object. Definition: hwloc.h:511
int hwloc_get_last_cpu_location(hwloc_topology_t topology, hwloc_cpuset_t set, int flags) Get the last physical CPU where the current process or thread ran.
struct hwloc_obj ** children Normal children, children[0 .. arity -1]. Definition: hwloc.h:455
struct hwloc_obj * next_sibling Next object below the same parent (inside the same list of children). Definition: hwloc.h:447
@ HWLOC_OBJ_CACHE_INSTRUCTION Instruction cache (filtered out by default). Definition: hwloc.h:329
int hwloc_obj_type_snprintf(char *restrict string, size_t size, hwloc_obj_t obj, int verbose) Stringify the type of a given topology object into a human-readable form.
int hwloc_topology_set_synthetic(hwloc_topology_t restrict topology, const char *restrict description) Enable synthetic topology.
@ HWLOC_OBJ_GROUP Group objects. Objects which do not fit in the above but are detected by hwloc and are useful to take... Definition: hwloc.h:223
@ HWLOC_RESTRICT_FLAG_REMOVE_CPULESS Remove all objects that became CPU-less. By default, only objects that contain no PU and no memory ar... Definition: hwloc.h:2244
struct hwloc_obj_attr_u::hwloc_osdev_attr_s osdev
hwloc_membind_flags_t Memory binding flags. Definition: hwloc.h:1443
struct hwloc_obj * io_first_child First I/O child. Bridges, PCI and OS devices are listed here (io_arity and io_first_child) instead of... Definition: hwloc.h:492
struct hwloc_topology * hwloc_topology_t Topology context. Definition: hwloc.h:691
unsigned hwloc_get_nbobjs_by_depth(hwloc_topology_t topology, int depth) Returns the width of level at depth depth.
@ HWLOC_CPUBIND_NOMEMBIND Avoid any effect on memory binding. Definition: hwloc.h:1203
void hwloc_topology_set_userdata(hwloc_topology_t topology, const void *userdata) Set the topology-specific userdata pointer.
@ HWLOC_CPUBIND_THREAD Bind current thread of current process. Definition: hwloc.h:1161
@ HWLOC_OBJ_L4CACHE Level 4 Data (or Unified) Cache. Definition: hwloc.h:216
unsigned short subdevice_id Definition: hwloc.h:640
unsigned char get_thread_cpubind Definition: hwloc.h:2035
hwloc_const_bitmap_t hwloc_const_nodeset_t A non-modifiable hwloc_nodeset_t. Definition: hwloc.h:160
const char * hwloc_obj_type_string(hwloc_obj_type_t type) Return a constant stringified object type.
hwloc_get_type_depth_e Definition: hwloc.h:820
struct hwloc_obj_attr_u::hwloc_numanode_attr_s numanode
int symmetric_subtree Set if the subtree of normal objects below this object is symmetric, which means all normal children ... Definition: hwloc.h:460
@ HWLOC_OBJ_CACHE_DATA Data cache. Definition: hwloc.h:328
int hwloc_topology_refresh(hwloc_topology_t topology) Refresh internal structures after topology modification.
@ HWLOC_MEMBIND_STRICT Definition: hwloc.h:1461
@ HWLOC_TOPOLOGY_FLAG_THISSYSTEM_ALLOWED_RESOURCES Get the set of allowed resources from the local operating system even if the topology was loaded from... Definition: hwloc.h:1945
static void * hwloc_alloc_membind_policy(hwloc_topology_t topology, size_t len, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags) Allocate some memory on NUMA memory nodes specified by set.
@ HWLOC_MEMBIND_FIRSTTOUCH Allocate each memory page individually on the local NUMA node of the thread that touches it. Definition: hwloc.h:1399
@ HWLOC_RESTRICT_FLAG_BYNODESET Restrict by nodeset instead of CPU set. Only keep objects whose nodeset is included or partially incl... Definition: hwloc.h:2250
unsigned char alloc_membind Definition: hwloc.h:2067
unsigned char dev Definition: hwloc.h:638
Object info. Definition: hwloc.h:673
@ HWLOC_MEMBIND_BIND Allocate memory on the specified nodes. Definition: hwloc.h:1403
@ HWLOC_OBJ_L5CACHE Level 5 Data (or Unified) Cache. Definition: hwloc.h:217
unsigned char disallowed_numa Detecting and identifying NUMA nodes that are not available to the current process is supported. Definition: hwloc.h:2011
Bridge specific Object Attribues. Definition: hwloc.h:645
hwloc_cpuset_t complete_cpuset The complete CPU set of processors of this object,. Definition: hwloc.h:526
enum hwloc_obj_osdev_type_e hwloc_obj_osdev_type_t Type of a OS device.
hwloc_nodeset_t complete_nodeset The complete NUMA node set of this object,. Definition: hwloc.h:561
unsigned short domain Definition: hwloc.h:634
@ HWLOC_TYPE_DEPTH_MISC Virtual depth for Misc object. Definition: hwloc.h:827
int hwloc_topology_set_type_filter(hwloc_topology_t topology, hwloc_obj_type_t type, enum hwloc_type_filter_e filter) Set the filtering for the given object type.
unsigned char numa Detecting the number of NUMA nodes is supported. Definition: hwloc.h:2005
int hwloc_obj_add_info(hwloc_obj_t obj, const char *name, const char *value) Add the given info name and value pair to the given object.
int hwloc_topology_allow(hwloc_topology_t restrict topology, hwloc_const_cpuset_t cpuset, hwloc_const_nodeset_t nodeset, unsigned long flags) Change the sets of allowed PUs and NUMA nodes in the topology.
Group-specific Object Attributes. Definition: hwloc.h:624
unsigned char func Definition: hwloc.h:638
unsigned io_arity Number of I/O children. These children are listed in io_first_child. Definition: hwloc.h:489
int hwloc_get_cpubind(hwloc_topology_t topology, hwloc_cpuset_t set, int flags) Get current process or thread binding.
int hwloc_topology_set_io_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter) Set the filtering for all I/O object types.
int hwloc_get_type_depth(hwloc_topology_t topology, hwloc_obj_type_t type) Returns the depth of objects of type type.
@ HWLOC_TOPOLOGY_FLAG_IMPORT_SUPPORT Import support from the imported topology. Definition: hwloc.h:1969
unsigned char get_thisproc_cpubind Definition: hwloc.h:2023
unsigned char pu Detecting the number of PU objects is supported. Definition: hwloc.h:2003
struct hwloc_obj * hwloc_obj_t Convenience typedef; a pointer to a struct hwloc_obj. Definition: hwloc.h:595
int hwloc_topology_set_xml(hwloc_topology_t restrict topology, const char *restrict xmlpath) Enable XML-file based topology.
struct hwloc_obj * first_child First normal child. Definition: hwloc.h:456
unsigned char set_thisthread_membind Definition: hwloc.h:2059
int hwloc_topology_load(hwloc_topology_t topology) Build the actual topology.
unsigned char get_area_memlocation Definition: hwloc.h:2079
int hwloc_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_cpuset_t set, int flags) Get the current physical binding of thread tid.
unsigned char bind_membind Definition: hwloc.h:2071
static int hwloc_get_type_or_below_depth(hwloc_topology_t topology, hwloc_obj_type_t type) Returns the depth of objects of type type or below.
hwloc_bitmap_t hwloc_cpuset_t A CPU set is a bitmap whose bits are set according to CPU physical OS indexes. Definition: hwloc.h:140
struct hwloc_obj * prev_sibling Previous object below the same parent (inside the same list of children). Definition: hwloc.h:448
int hwloc_topology_is_thissystem(hwloc_topology_t restrict topology) Does the topology context come from this system?
unsigned kind Internally-used kind of group. Definition: hwloc.h:627
unsigned char set_thread_cpubind Definition: hwloc.h:2033
void hwloc_topology_check(hwloc_topology_t topology) Run internal checks on a topology structure.
int hwloc_topology_set_flags(hwloc_topology_t topology, unsigned long flags) Set OR'ed flags to non-yet-loaded topology.
@ HWLOC_OBJ_OSDEV_COPROC Operating system co-processor device. For instance "opencl0d0" for a OpenCL device,... Definition: hwloc.h:352
unsigned misc_arity Number of Misc children. These children are listed in misc_first_child. Definition: hwloc.h:501
@ HWLOC_OBJ_MEMCACHE Memory-side cache (filtered out by default). A cache in front of a specific NUMA node. Definition: hwloc.h:305
union hwloc_obj_attr_u::hwloc_bridge_attr_s::@0 upstream
@ HWLOC_MEMBIND_MIGRATE Migrate existing allocated memory. If the memory cannot be migrated and the HWLOC_MEMBIND_STRICT flag... Definition: hwloc.h:1467
char * value Info value. Definition: hwloc.h:675
void hwloc_topology_destroy(hwloc_topology_t topology) Terminate and free a topology context.
@ HWLOC_OBJ_PU Processing Unit, or (Logical) Processor. An execution unit (may share a core with some other logical ... Definition: hwloc.h:201
@ HWLOC_OBJ_OSDEV_OPENFABRICS Operating system openfabrics device. For instance the "mlx4_0" InfiniBand HCA, or "hfi1_0" Omni-Path ... Definition: hwloc.h:347
hwloc_obj_bridge_type_t upstream_type Definition: hwloc.h:649
@ HWLOC_OBJ_L3ICACHE Level 3 instruction Cache (filtered out by default). Definition: hwloc.h:221
hwloc_uint64_t total_memory Total memory (in bytes) in NUMA nodes below this object. Definition: hwloc.h:412
@ HWLOC_OBJ_L3CACHE Level 3 Data (or Unified) Cache. Definition: hwloc.h:215
unsigned short domain Definition: hwloc.h:653
hwloc_obj_cache_type_t type Cache type. Definition: hwloc.h:621
Array of local memory page types, NULL if no local memory and page_types is 0. Definition: hwloc.h:608
hwloc_bitmap_t hwloc_nodeset_t A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes. Definition: hwloc.h:157
@ HWLOC_OBJ_L2CACHE Level 2 Data (or Unified) Cache. Definition: hwloc.h:214
int hwloc_topology_dup(hwloc_topology_t *newtopology, hwloc_topology_t oldtopology) Duplicate a topology.
hwloc_obj_bridge_type_e Type of one side (upstream or downstream) of an I/O bridge. Definition: hwloc.h:333
int hwloc_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_const_cpuset_t set, int flags) Bind a thread thread on cpus given in physical bitmap set.
hwloc_obj_t hwloc_get_obj_by_depth(hwloc_topology_t topology, int depth, unsigned idx) Returns the topology object at logical index idx from depth depth.
@ HWLOC_TYPE_FILTER_KEEP_IMPORTANT Only keep likely-important objects of the given type. Definition: hwloc.h:2177
static hwloc_obj_t hwloc_get_next_obj_by_type(hwloc_topology_t topology, hwloc_obj_type_t type, hwloc_obj_t prev) Returns the next object of type type.
unsigned char nexttouch_membind Definition: hwloc.h:2075
static int hwloc_get_nbobjs_by_type(hwloc_topology_t topology, hwloc_obj_type_t type) Returns the width of level type type.
@ HWLOC_RESTRICT_FLAG_ADAPT_MISC Move Misc objects to ancestors if their parents are removed during restriction. If this flag is not s... Definition: hwloc.h:2263
@ HWLOC_MEMBIND_NEXTTOUCH For each page bound with this policy, by next time it is touched (and next time only),... Definition: hwloc.h:1419
unsigned depth Depth of cache (e.g., L1, L2, ...etc.) Definition: hwloc.h:617
unsigned char disallowed_pu Detecting and identifying PU objects that are not available to the current process is supported. Definition: hwloc.h:2009
int associativity Ways of associativity, -1 if fully associative, 0 if unknown. Definition: hwloc.h:619
hwloc_obj_osdev_type_t type Definition: hwloc.h:665
@ HWLOC_MEMBIND_DEFAULT Reset the memory allocation policy to the system default. Depending on the operating system,... Definition: hwloc.h:1388
hwloc_uint64_t size Size of pages. Definition: hwloc.h:609
hwloc_obj_bridge_type_t downstream_type Definition: hwloc.h:660
unsigned short class_id Definition: hwloc.h:639
int hwloc_get_membind(hwloc_topology_t topology, hwloc_bitmap_t set, hwloc_membind_policy_t *policy, int flags) Query the default memory binding policy and physical locality of the current process or thread.
unsigned char get_thisthread_last_cpu_location Definition: hwloc.h:2041
union hwloc_obj_attr_u * attr Object type-specific Attributes, may be NULL if no attribute value was found. Definition: hwloc.h:414
unsigned depth Definition: hwloc.h:661
int hwloc_topology_set_cache_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter) Set the filtering for all CPU cache object types.
int hwloc_topology_get_depth(hwloc_topology_t restrict topology) Get the depth of the hierarchical tree of objects.
int hwloc_get_area_memlocation(hwloc_topology_t topology, const void *addr, size_t len, hwloc_bitmap_t set, int flags) Get the NUMA nodes where memory identified by (addr, len ) is physically allocated.
unsigned char set_proc_cpubind Definition: hwloc.h:2025
int hwloc_get_proc_last_cpu_location(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int flags) Get the last physical CPU where a process ran.
unsigned char set_thisproc_cpubind Definition: hwloc.h:2021
int hwloc_topology_set_all_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter) Set the filtering for all object types.
@ HWLOC_OBJ_NUMANODE NUMA node. An object that contains memory that is directly and byte-accessible to the host processors... Definition: hwloc.h:236
@ HWLOC_OBJ_L1ICACHE Level 1 instruction Cache (filtered out by default). Definition: hwloc.h:219
int hwloc_set_membind(hwloc_topology_t topology, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags) Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) spe...
unsigned char set_area_membind Definition: hwloc.h:2063
@ HWLOC_TYPE_FILTER_KEEP_NONE Ignore all objects of this type. Definition: hwloc.h:2148
Flags describing miscellaneous features. Definition: hwloc.h:2084
const struct hwloc_topology_support * hwloc_topology_get_support(hwloc_topology_t restrict topology) Retrieve the topology support.
struct hwloc_obj_attr_u::hwloc_bridge_attr_s bridge
unsigned char get_proc_membind Definition: hwloc.h:2057
hwloc_type_filter_e Type filtering flags. Definition: hwloc.h:2134
unsigned char get_proc_last_cpu_location Definition: hwloc.h:2039
hwloc_uint64_t gp_index Global persistent index. Generated by hwloc, unique across the topology (contrary to os_index) and pe... Definition: hwloc.h:586
@ HWLOC_MEMBIND_INTERLEAVE Allocate memory on the given nodes in an interleaved / round-robin manner. The precise layout of the ... Definition: hwloc.h:1412
OS Device specific Object Attributes. Definition: hwloc.h:664
static const char * hwloc_obj_get_info_by_name(hwloc_obj_t obj, const char *name) Search the given key name in object infos and return the corresponding value.
unsigned char interleave_membind Definition: hwloc.h:2073
@ HWLOC_CPUBIND_PROCESS Bind all threads of the current (possibly) multithreaded process. Definition: hwloc.h:1157
@ HWLOC_OBJ_PACKAGE Physical package. The physical package that usually gets inserted into a socket on the motherboard.... Definition: hwloc.h:191
int hwloc_topology_set_pid(hwloc_topology_t restrict topology, hwloc_pid_t pid) Change which process the topology is viewed from.
hwloc_uint64_t size Size of cache in bytes. Definition: hwloc.h:616
hwloc_obj_type_t hwloc_get_depth_type(hwloc_topology_t topology, int depth) Returns the type of objects at depth depth.
char * name Info name. Definition: hwloc.h:674
@ HWLOC_TYPE_DEPTH_MULTIPLE Objects of given type exist at different depth in the topology (only for Groups). Definition: hwloc.h:822
unsigned char get_area_membind Definition: hwloc.h:2065
@ HWLOC_TYPE_DEPTH_MEMCACHE Virtual depth for MemCache object. Definition: hwloc.h:828
static hwloc_obj_t hwloc_get_next_obj_by_depth(hwloc_topology_t topology, int depth, hwloc_obj_t prev) Returns the next object at depth depth.
unsigned char set_thisthread_cpubind Definition: hwloc.h:2029
char * name Object-specific name if any. Mostly used for identifying OS devices and Misc objects where a name str... Definition: hwloc.h:407
unsigned char secondary_bus Definition: hwloc.h:657
int hwloc_set_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags) Set the default memory binding policy of the specified process to prefer the NUMA node(s) specified b...
unsigned subkind Internally-used subkind to distinguish different levels of groups with same kind. Definition: hwloc.h:628
unsigned char get_thisthread_membind Definition: hwloc.h:2061
hwloc_obj_osdev_type_e Type of a OS device. Definition: hwloc.h:339
@ HWLOC_TYPE_DEPTH_UNKNOWN No object of given type exists in the topology. Definition: hwloc.h:821
@ HWLOC_TYPE_DEPTH_NUMANODE Virtual depth for NUMA nodes. Definition: hwloc.h:823
@ HWLOC_TYPE_DEPTH_BRIDGE Virtual depth for bridge object level. Definition: hwloc.h:824
@ HWLOC_OBJ_BRIDGE_PCI PCI-side of a bridge. Definition: hwloc.h:335
unsigned char subordinate_bus Definition: hwloc.h:657
unsigned page_types_len Size of array page_types. Definition: hwloc.h:602
@ HWLOC_MEMBIND_NOCPUBIND Avoid any effect on CPU binding. Definition: hwloc.h:1480
hwloc_uint64_t count Number of pages of this size. Definition: hwloc.h:610
@ HWLOC_MEMBIND_PROCESS Set policy for all threads of the specified (possibly multithreaded) process. This flag is mutually e... Definition: hwloc.h:1448
@ HWLOC_OBJ_OSDEV_BLOCK Operating system block device, or non-volatile memory device. For instance "sda" or "dax2.... Definition: hwloc.h:340
unsigned char set_proc_membind Definition: hwloc.h:2055
Set of flags describing actual support for this topology. Definition: hwloc.h:2095
Object type-specific Attributes. Definition: hwloc.h:598
unsigned short device_id Definition: hwloc.h:640
struct hwloc_obj_attr_u::hwloc_cache_attr_s cache
hwloc_obj_type_t Type of topology object. Definition: hwloc.h:176
void * hwloc_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags) Allocate some memory on NUMA memory nodes specified by set.
unsigned infos_count Size of infos array. Definition: hwloc.h:578
struct hwloc_obj * next_cousin Next object of same type and depth. Definition: hwloc.h:441
@ HWLOC_ALLOW_FLAG_CUSTOM Allow a custom set of objects, given to hwloc_topology_allow() as cpuset and/or nodeset parameters. Definition: hwloc.h:2317
unsigned hwloc_get_api_version(void) Indicate at runtime which hwloc API version was used at build time.
@ HWLOC_OBJ_CACHE_UNIFIED Unified cache. Definition: hwloc.h:327
struct hwloc_obj * last_child Last normal child. Definition: hwloc.h:457
@ HWLOC_OBJ_BRIDGE_HOST Host-side of a bridge, only possible upstream. Definition: hwloc.h:334
static hwloc_obj_t hwloc_get_root_obj(hwloc_topology_t topology) Returns the top-object of the topology-tree.
struct hwloc_obj * misc_first_child First Misc child. Misc objects are listed here (misc_arity and misc_first_child) instead of in the no... Definition: hwloc.h:504
Flags describing actual memory binding support for this topology. Definition: hwloc.h:2049
Cache-specific Object Attributes. Definition: hwloc.h:615
hwloc_nodeset_t nodeset NUMA nodes covered by this object or containing this object. Definition: hwloc.h:539
unsigned char imported_support Definition: hwloc.h:2086
@ HWLOC_OBJ_BRIDGE Bridge (filtered out by default). Any bridge (or PCI switch) that connects the host or an I/O bus,... Definition: hwloc.h:257
struct hwloc_obj_attr_u::hwloc_group_attr_s group
enum hwloc_obj_bridge_type_e hwloc_obj_bridge_type_t Type of one side (upstream or downstream) of an I/O bridge.
unsigned depth Depth of group object. It may change if intermediate Group objects are added. Definition: hwloc.h:625
struct hwloc_obj * parent Parent, NULL if root (Machine object) Definition: hwloc.h:445
unsigned char get_thisproc_last_cpu_location Definition: hwloc.h:2037
struct hwloc_topology_membind_support * membind Definition: hwloc.h:2098
int hwloc_obj_add_other_obj_sets(hwloc_obj_t dst, hwloc_obj_t src) Setup object cpusets/nodesets by OR'ing another object's sets.
unsigned char dont_merge Flag preventing groups from being automatically merged with identical parent or children. Definition: hwloc.h:629
@ HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM Assume that the selected backend provides the topology for the system on which we are running. Definition: hwloc.h:1924
hwloc_uint64_t local_memory Local memory (in bytes) Definition: hwloc.h:601
@ HWLOC_OBJ_MACHINE Machine. A set of processors and memory with cache coherency. Definition: hwloc.h:182
struct hwloc_pcidev_attr_s pci Definition: hwloc.h:647
union hwloc_obj_attr_u::hwloc_bridge_attr_s::@1 downstream
@ HWLOC_TYPE_FILTER_KEEP_ALL Keep all objects of this type. Definition: hwloc.h:2140
hwloc_membind_policy_t Memory binding policy. Definition: hwloc.h:1380
hwloc_obj_t hwloc_topology_insert_group_object(hwloc_topology_t topology, hwloc_obj_t group) Add more structure to the topology by adding an intermediate Group.
Flags describing actual discovery support for this topology. Definition: hwloc.h:2001
NUMA node-specific Object Attributes. Definition: hwloc.h:600
@ HWLOC_RESTRICT_FLAG_REMOVE_MEMLESS Remove all objects that became Memory-less. By default, only objects that contain no PU and no memory... Definition: hwloc.h:2257
int hwloc_get_memory_parents_depth(hwloc_topology_t topology) Return the depth of parents where memory objects are attached.
unsigned char numa_memory Detecting the amount of memory in NUMA nodes is supported. Definition: hwloc.h:2007
@ HWLOC_OBJ_MISC Miscellaneous objects (filtered out by default). Objects without particular meaning,... Definition: hwloc.h:290
int hwloc_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int flags) Bind a process pid on cpus given in physical bitmap set.
void * hwloc_alloc(hwloc_topology_t topology, size_t len) Allocate some memory.
Structure of a topology object. Definition: hwloc.h:395
@ HWLOC_TOPOLOGY_FLAG_INCLUDE_DISALLOWED Detect the whole system, ignore reservations, include disallowed objects. Definition: hwloc.h:1904
unsigned arity Number of normal children. Memory, Misc and I/O children are not listed here but rather in their dedi... Definition: hwloc.h:451
char * subtype Subtype string to better describe the type field. Definition: hwloc.h:398
@ HWLOC_OBJ_OSDEV_DMA Operating system dma engine device. For instance the "dma0chan0" DMA channel on Linux. Definition: hwloc.h:350
@ HWLOC_OBJ_DIE Die within a physical package. A subpart of the physical package, that contains multiple cores. Definition: hwloc.h:318
@ HWLOC_ALLOW_FLAG_ALL Mark all objects as allowed in the topology. Definition: hwloc.h:2304
unsigned char migrate_membind Definition: hwloc.h:2077
@ HWLOC_MEMBIND_BYNODESET Consider the bitmap argument as a nodeset. Definition: hwloc.h:1491
@ HWLOC_OBJ_OSDEV_GPU Operating system GPU device. For instance ":0.0" for a GL display, "card0" for a Linux DRM device. Definition: hwloc.h:342
static int hwloc_get_type_or_above_depth(hwloc_topology_t topology, hwloc_obj_type_t type) Returns the depth of objects of type type or above.
float linkspeed Definition: hwloc.h:642
hwloc_restrict_flags_e Flags to be given to hwloc_topology_restrict(). Definition: hwloc.h:2238
struct hwloc_info_s * infos Array of stringified info type=name. Definition: hwloc.h:577
int hwloc_topology_get_type_filter(hwloc_topology_t topology, hwloc_obj_type_t type, enum hwloc_type_filter_e *filter) Get the current filtering for the given object type.
int hwloc_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags) Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) specified by set.
unsigned sibling_rank Index in parent's children[] array. Or the index in parent's Memory, I/O or Misc children list. Definition: hwloc.h:446
hwloc_obj_t hwloc_topology_alloc_group_object(hwloc_topology_t topology) Allocate a Group object to insert later with hwloc_topology_insert_group_object().
int hwloc_topology_abi_check(hwloc_topology_t topology) Verify that the topology is compatible with the current hwloc library.
hwloc_topology_components_flag_e Flags to be passed to hwloc_topology_set_components() Definition: hwloc.h:1842
unsigned short vendor_id Definition: hwloc.h:640
static hwloc_obj_t hwloc_get_obj_by_type(hwloc_topology_t topology, hwloc_obj_type_t type, unsigned idx) Returns the topology object at logical index idx with type type.
struct hwloc_obj * prev_cousin Previous object of same type and depth. Definition: hwloc.h:442
unsigned char get_thisproc_membind Definition: hwloc.h:2053
struct hwloc_topology_misc_support * misc Definition: hwloc.h:2099
unsigned long hwloc_topology_get_flags(hwloc_topology_t topology) Get OR'ed flags of a topology.
@ HWLOC_TYPE_FILTER_KEEP_STRUCTURE Only ignore objects if their entire level does not bring any structure. Definition: hwloc.h:2162
@ HWLOC_CPUBIND_STRICT Request for strict binding from the OS. Definition: hwloc.h:1186
int hwloc_free(hwloc_topology_t topology, void *addr, size_t len) Free memory that was previously allocated by hwloc_alloc() or hwloc_alloc_membind().
int hwloc_topology_set_icache_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter) Set the filtering for all CPU instruction cache object types.
void * userdata Application-given private data pointer, initialized to NULL, use it as you wish. See hwloc_topology_s... Definition: hwloc.h:581
struct hwloc_obj_attr_u::hwloc_numanode_attr_s::hwloc_memory_page_type_s * page_types
int hwloc_topology_set_components(hwloc_topology_t restrict topology, unsigned long flags, const char *restrict name) Prevent a discovery component from being used for a topology.
const struct hwloc_bitmap_s * hwloc_const_bitmap_t a non-modifiable hwloc_bitmap_t Definition: bitmap.h:70
unsigned os_index OS-provided physical index number. It is not guaranteed unique across the entire machine,... Definition: hwloc.h:400
@ HWLOC_ALLOW_FLAG_LOCAL_RESTRICTIONS Only allow objects that are available to the current process. Definition: hwloc.h:2313
hwloc_const_bitmap_t hwloc_const_cpuset_t A non-modifiable hwloc_cpuset_t. Definition: hwloc.h:142
@ HWLOC_OBJ_L1CACHE Level 1 Data (or Unified) Cache. Definition: hwloc.h:213
int hwloc_topology_set_xmlbuffer(hwloc_topology_t restrict topology, const char *restrict buffer, int size) Enable XML based topology using a memory buffer (instead of a file, as with hwloc_topology_set_xml())...
int hwloc_obj_attr_snprintf(char *restrict string, size_t size, hwloc_obj_t obj, const char *restrict separator, int verbose) Stringify the attributes of a given topology object into a human-readable form.
unsigned char revision Definition: hwloc.h:641
int hwloc_type_sscanf_as_depth(const char *string, hwloc_obj_type_t *typep, hwloc_topology_t topology, int *depthp) Return an object type and its level depth from a type string.
int hwloc_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int flags) Get the current physical binding of process pid.
struct hwloc_bitmap_s * hwloc_bitmap_t Set of bits represented as an opaque pointer to an internal bitmap. Definition: bitmap.h:68
hwloc_allow_flags_e Flags to be given to hwloc_topology_allow(). Definition: hwloc.h:2299
unsigned logical_index Horizontal index in the whole list of similar objects, hence guaranteed unique across the entire mach... Definition: hwloc.h:433
|