Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
hwlocalit..._find_misc(3)  Library Functions Manual  hwlocalit..._find_misc(3)

NAME
       hwlocality_helper_find_misc - Finding objects, miscellaneous helpers

SYNOPSIS
   Functions
       int hwloc_bitmap_singlify_per_core (hwloc_topology_t topology,
	   hwloc_bitmap_t cpuset, unsigned which)
       static hwloc_obj_t hwloc_get_pu_obj_by_os_index (hwloc_topology_t
	   topology, unsigned os_index)
       static hwloc_obj_t hwloc_get_numanode_obj_by_os_index (hwloc_topology_t
	   topology, unsigned os_index)
       unsigned	hwloc_get_closest_objs (hwloc_topology_t topology, hwloc_obj_t
	   src,	hwloc_obj_t *restrict objs, unsigned max)
       static hwloc_obj_t hwloc_get_obj_below_by_type (hwloc_topology_t
	   topology, hwloc_obj_type_t type1, unsigned idx1, hwloc_obj_type_t
	   type2, unsigned idx2)
       static hwloc_obj_t hwloc_get_obj_below_array_by_type (hwloc_topology_t
	   topology, int nr, hwloc_obj_type_t *typev, unsigned *idxv)
       hwloc_obj_t hwloc_get_obj_with_same_locality (hwloc_topology_t
	   topology, hwloc_obj_t src, hwloc_obj_type_t type, const char
	   *subtype, const char	*nameprefix, unsigned long flags)

Detailed Description
       Be sure to see the figure in Terms and Definitions that shows a
       complete	topology tree, including depths, child/sibling/cousin
       relationships, and an example of	an asymmetric topology where one
       package has fewer caches	than its peers.

Function Documentation
   int hwloc_bitmap_singlify_per_core (hwloc_topology_t	topology,
       hwloc_bitmap_t cpuset, unsigned which)
       Remove simultaneous multithreading PUs from a CPU set. For each core in
       topology, if cpuset contains some PUs of	that core, modify cpuset to
       only keep a single PU for that core.

       which specifies which PU	will be	kept. PU are considered	in physical
       index order. If 0, for each core, the function keeps the	first PU that
       was originally set in cpuset.

       If which	is larger than the number of PUs in a core there were
       originally set in cpuset, no PU is kept for that	core.

       Returns
	   0.

       Note
	   PUs that are	not below a Core object	are ignored (for instance if
	   the topology	does not contain any Core object). None	of them	is
	   removed from	cpuset.

   unsigned hwloc_get_closest_objs (hwloc_topology_t topology, hwloc_obj_t
       src, hwloc_obj_t	*restrict objs,	unsigned max)
       Do a depth-first	traversal of the topology to find and sort. all
       objects that are	at the same depth than src. Report in objs up to max
       physically closest ones to src.

       Returns
	   the number of objects returned in objs.

	   0 if	src is an I/O object.

       Note
	   This	function requires the src object to have a CPU set.

   static hwloc_obj_t hwloc_get_numanode_obj_by_os_index (hwloc_topology_t
       topology, unsigned os_index) [inline],  [static]
       Returns the object of type HWLOC_OBJ_NUMANODE with os_index. This
       function	is useful for converting a nodeset into	the NUMA node objects
       it contains. When retrieving the	current	binding	(e.g. with
       hwloc_get_membind() with	HWLOC_MEMBIND_BYNODESET), one may iterate over
       the bits	of the resulting nodeset with hwloc_bitmap_foreach_begin(),
       and find	the corresponding NUMA nodes with this function.

       Returns
	   the NUMA node object, or NULL if none matches.

   static hwloc_obj_t hwloc_get_obj_below_array_by_type	(hwloc_topology_t
       topology, int nr, hwloc_obj_type_t * typev, unsigned * idxv) [inline],
       [static]
       Find an object below a chain of objects specified by types and indexes.
       This is a generalized version of	hwloc_get_obj_below_by_type().

       Arrays typev and	idxv must contain nr types and indexes.

       Start from the top system object	and walk the arrays typev and idxv.
       For each	type and logical index couple in the arrays, look under	the
       previously found	object to find the index-th object of the given	type.
       Indexes are specified within the	parent,	not withing the	entire system.

       For instance, if	nr is 3, typev contains	NODE, PACKAGE and CORE,	and
       idxv contains 0,	1 and 2, return	the third core object below the	second
       package below the first NUMA node.

       Returns
	   a matching object if	any, NULL otherwise.

       Note
	   This	function requires all these objects and	the root object	to
	   have	a CPU set.

   static hwloc_obj_t hwloc_get_obj_below_by_type (hwloc_topology_t topology,
       hwloc_obj_type_t	type1, unsigned	idx1, hwloc_obj_type_t type2, unsigned
       idx2) [inline],	[static]
       Find an object below another object, both specified by types and
       indexes.	Start from the top system object and find object of type type1
       and logical index idx1. Then look below this object and find another
       object of type type2 and	logical	index idx2. Indexes are	specified
       within the parent, not withing the entire system.

       For instance, if	type1 is PACKAGE, idx1 is 2, type2 is CORE and idx2 is
       3, return the fourth core object	below the third	package.

       Returns
	   a matching object if	any, NULL otherwise.

       Note
	   This	function requires these	objects	to have	a CPU set.

   hwloc_obj_t hwloc_get_obj_with_same_locality	(hwloc_topology_t topology,
       hwloc_obj_t src,	hwloc_obj_type_t type, const char * subtype, const
       char * nameprefix, unsigned long	flags)
       Return an object	of a different type with same locality.	If the source
       object src is a normal or memory	type, this function returns an object
       of type type with same CPU and node sets, either	below or above in the
       hierarchy.

       If the source object src	is a PCI or an OS device within	a PCI device,
       the function may	either return that PCI device, or another OS device in
       the same	PCI parent. This may for instance be useful for	converting
       between OS devices such as 'nvml0' or 'rsmi1' used in distance
       structures into the the PCI device, or the CUDA or OpenCL OS device
       that correspond to the same physical card.

       If not NULL, parameter subtype only select objects whose	subtype
       attribute exists	and is subtype (case-insensitively), for instance
       'OpenCL'	or 'CUDA'.

       If not NULL, parameter nameprefix only selects objects whose name
       attribute exists	and starts with	nameprefix (case-insensitively), for
       instance	'rsmi' for matching 'rsmi0'.

       If multiple objects match, the first one	is returned.

       This function will not walk the hierarchy across	bridges	since the PCI
       locality	may become different. This function cannot also	convert
       between normal/memory objects and I/O or	Misc objects.

       flags must be 0 for now.

       Returns
	   An object with identical locality, matching subtype and nameprefix
	   if any.

	   NULL	if no matching object could be found, or if the	source object
	   and target type are incompatible, for instance if converting
	   between CPU and I/O objects.

   static hwloc_obj_t hwloc_get_pu_obj_by_os_index (hwloc_topology_t topology,
       unsigned	os_index) [inline],  [static]
       Returns the object of type HWLOC_OBJ_PU with os_index. This function is
       useful for converting a CPU set into the	PU objects it contains.	When
       retrieving the current binding (e.g. with hwloc_get_cpubind()), one may
       iterate over the	bits of	the resulting CPU set with
       hwloc_bitmap_foreach_begin(), and find the corresponding	PUs with this
       function.

       Returns
	   the PU object, or NULL if none matches.

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

Hardware Locality (hwloc)	Version	2.11.2	     hwlocalit..._find_misc(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hwloc_get_closest_objs&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help