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

FreeBSD Manual Pages

  
 
  

home | help
HWLOC-INFO(1)			     hwloc			 HWLOC-INFO(1)

NAME
       hwloc-info  -  Show  some information about some	objects, a topology or
       supported features

SYNOPSIS
       hwloc-info [ options ]...  <object>...

       hwloc-info [ options ] root hwloc-info [	options	] [ topology |	levels
       | support ]

       <object>...  may	 be a space-separated list of target objects to	query.
       The program reports all information about one object before looking  at
       the next	one:

	   $ hwloc-info	core:2 package:1 pu:all
	   Core	L#2
	    type = Core
	    ...
	   Package L#1
	    ...
	   PU L#0
	    ...
	   PU L#1
	    ...

       The list	may also contain special keywords such as:

	   root	for the	topology root object.

	   levels  for information about topology levels (default if no	target
       object is given,	identical to --topology).

	   topology for	topology info attributes stored	 in  the  root	object
       (for forward compatibility with topology	info attrs in hwloc 3.0).

	   support  for	 information  about  supported	features (identical to
       --support).

       Real targets and	special	keywords may be	combined:

	   $ hwloc-info	core:2 topology	pu:3 levels

       Note that hwloc(7) provides a detailed explanation of the hwloc	system
       and  of	valid  <object>	formats; it should be read before reading this
       man page.

OPTIONS
       --objects
	      Report information specific objects.  This  is  the  default  if
	      some objects are given on	the command-line.

       --topology
	      Report  a	summary	of the topology	instead	of about some specific
	      objects.	This is	equivalent to passing levels as	a  target  ob-
	      ject  on	the command-line.  This	is the default if no object is
	      given on the command-line.

       --support
	      Report the features that are supported by	hwloc on the topology.
	      The  features  are  those	 available  through  the  hwloc_topol-
	      ogy_get_support()	 function.  This is useful for verifying which
	      CPU or memory binding options are	supported by the current hwloc
	      installation.  This is equivalent	to passing support as a	target
	      object on	the command-line.

       -i <path>, --input <path>
	      Read the topology	from <path> instead of discovering the	topol-
	      ogy of the local machine.

	      If <path>	is a file, it may be a XML file	exported by a previous
	      hwloc program.  If <path>	is "-",	the standard input may be used
	      as a XML file.

	      On  Linux,  <path>  may  be  a directory containing the topology
	      files gathered from another machine topology with	 hwloc-gather-
	      topology.

	      On  x86, <path> may be a directory containing a cpuid dump gath-
	      ered with	hwloc-gather-cpuid.

	      When the archivemount program is available, <path> may also be a
	      tarball containing such Linux or x86 topology files.

       -i <specification>, --input <specification>
	      Simulate a fake hierarchy	(instead of discovering	 the  topology
	      on  the local machine). If <specification> is "node:2 pu:3", the
	      topology will contain two	NUMA nodes with	3 processing units  in
	      each of them.  The <specification> string	must end with a	number
	      of PUs.

       --if <format>, --input-format <format>
	      Enforce  the input in the	given format, among xml, fsroot, cpuid
	      and synthetic.

       -v --verbose
	      Include additional detail.

       -q --quiet -s --silent
	      Reduce the amount	of details to show.  A single summary line per
	      object is	displayed.

       --get-attr <name>
	      Only report the attribute	of name	<name> for  each  object  (in-
	      stead  of	 all attributes).  The name must exactly match what is
	      usually reported by the program, for instance "complete  cpuset"
	      in "0.1: complete	cpuset = %0x00ffff00".

	      Only  the	 value is reported, any	other prefix or	object name is
	      ignored, so that the output may easily be	used by	other tools.

	      This option also works on	topology information but it is ignored
	      for levels and support keywords.

       --ancestors
	      Display information about	the object as well as  about  all  its
	      ancestors	 up to the root	of the topology.  This is identical to
	      --ancestor all

       --ancestor <type>
	      Only display the object ancestors	that match the given type.

	      Some special values matching multiple types may also  be	given:
	      kind=normal  (CPU	 objects, including caches), kind=cpu (CPU ob-
	      jects, excluding caches),	kind=cache (all	caches,	including mem-
	      ory-side	caches),  kind=memory  (NUMA  nodes   or   memory-side
	      caches), kind=io (IO objects), kind=all (all objects).  See also
	      Object  Kind in Terms and	Definitions in the documentation.  The
	      prefix kind= may be omitted if there is no ambiguity.

	      If multiple ancestors match, they	are reported from the  deepest
	      to  the  highest in the topology.	 Adding	--first	will only show
	      the first	one.

       --children
	      Display information about	the object children.

       --descendants <type>
	      Display information about	the object descendants that match  the
	      given type.

	      Some  special  values matching multiple types may	also be	given:
	      kind=normal (CPU objects,	including caches), kind=cpu  (CPU  ob-
	      jects, excluding caches),	kind=cache (all	caches,	including mem-
	      ory-side	 caches),   kind=memory	 (NUMA	nodes  or  memory-side
	      caches), kind=io (IO objects), kind=all (all objects).  See also
	      Object Kind in Terms and Definitions in the documentation.   The
	      prefix kind= may be omitted if there is no ambiguity.

	      If  multiple  objects  match, they are reported in a depth-first
	      order (first child, then its children, etc., then	second	child,
	      etc.).  Adding --first will only show the	first one.

       --local-memory
	      Display  information  about the NUMA nodes that are local	to the
	      given object.

       --local-memory-flags
	      Change the flags used to select local NUMA nodes.	 Flags may  be
	      given  as	 numeric  values  or as	a comma-separated list of flag
	      names that are passed to hwloc_get_local_numanode_objs().	 Those
	      names may	be substrings of actual	flag names as long as a	single
	      one matches.  The	default	is 3 (or smaller,larger)  which	 means
	      NUMA nodes are displayed if their	locality either	contains or is
	      contained	in the locality	of the given object.

	      This option enables --local-memory.

       --best-memattr <name>
	      Enable  the  listing  of local memory nodes with --local-memory,
	      but only display the local nodes that have the  best  value  for
	      the  memory  attribute given by <name> (or as an index).	If the
	      memory attribute values depend  on  the  initiator,  the	object
	      given to hwloc-info is used as the initiator.

	      <name>  may be suffixed with flags to tune the selection of best
	      nodes, for instance as bandwidth,strict,default.	default	 means
	      that  all	 local	nodes  are reported if no best could be	found.
	      strict means that	nodes are selected only	if  their  performance
	      is  the  best  for  all the input	CPUs. On a dual-socket machine
	      with HBM in each socket, both HBMs are the best for their	 local
	      socket,  but not for the remote socket.  Hence both HBM are also
	      considered best for the entire machine by	default, but  none  if
	      strict.

       --first
	      For each input object, only report the first matching output ob-
	      ject (first ancestor, first child, etc.).

       -n     When  outputting	object	information, prefix each line with the
	      index of the considered object within the	input.	For  instance,
	      if  three	 cores	were  given in input, the output lines will be
	      prefixed with "0:	", "1: " or "2:	 ".   If  --ancestor  is  also
	      used,  the  prefix  will	be "X.Y: " where X is the index	of the
	      considered object	within the input, and Y	is the parent index (0
	      for the object itself, increasing	towards	the root of the	topol-
	      ogy).

       --disallowed
	      Include objects disallowed by administrative limitations.

       --restrict <cpuset>
	      Restrict the topology to the given cpuset.   This	 removes  some
	      PUs and their now-child-less parents.

	      Beware  that  restricting	 the  PUs in a topology	may change the
	      logical indexes of many objects, including NUMA nodes.

       --restrict nodeset=<nodeset>
	      Restrict	the  topology  to  the	given  nodeset	(unless	 --re-
	      strict-flags  specifies something	different).  This removes some
	      NUMA nodes and their now-child-less parents.

	      Beware that restricting the NUMA nodes in	a topology may	change
	      the logical indexes of many objects, including PUs.

       --restrict binding
	      Restrict	the topology to	the current process binding.  This op-
	      tion requires the	use of the actual current machine topology (or
	      any other	topology with --thissystem  or	with  HWLOC_THISSYSTEM
	      set to 1 in the environment).

	      Beware  that restricting the topology may	change the logical in-
	      dexes of many objects, including PUs and NUMA nodes.

       --restrict-flags	<flags>
	      Enforce flags when restricting the topology.  Flags may be given
	      as numeric values	or as a	comma-separated	 list  of  flag	 names
	      that  are	 passed	to hwloc_topology_restrict().  Those names may
	      be substrings of actual flag names  as  long  as	a  single  one
	      matches,	for  instance bynodeset,memless.  The default is 0 (or
	      none).

       --filter	<type>:<kind>, --filter	<type>
	      Filter objects of	type <type>, or	 of  any  type	if  <type>  is
	      "all".  "io", "cache" and	"icache" are also supported.

	      <kind> specifies the filtering behavior.	If "none" or not spec-
	      ified, all objects of the	given type are removed.	 If "all", all
	      objects  are  kept  as  usual.  If "structure", objects are kept
	      when they	bring structure	to the topology.  If "important" (only
	      applicable to I/O	and Misc), only	important  objects  are	 kept.
	      See hwloc_topology_set_type_filter() for more details.

       --no-icaches
	      Do not show Instruction caches, only Data	and Unified caches are
	      considered.  This	is identical to	--filter icache:none.

       --no-io
	      Do  not  show  any  I/O  device or bridge.  This is identical to
	      --filter io:none.	 By default, common devices (GPUs, NICs, block
	      devices, ...) and	interesting bridges are	shown.

       --no-bridges
	      Do not show any I/O bridge except	hostbridges.  This is  identi-
	      cal  to --filter bridge:none.  By	default, common	devices	(GPUs,
	      NICs, block devices, ...)	and interesting	bridges	are shown.

       --whole-io
	      Show all I/O devices and bridges.	 This is identical to --filter
	      io:all.  By default, only	common devices (GPUs, NICs, block  de-
	      vices, ...) and interesting bridges are shown.

       --thissystem
	      Assume  that  the	selected backend provides the topology for the
	      system on	which we are running.  This is useful when using --re-
	      strict binding and loading a custom  topology  such  as  an  XML
	      file.

       --pid <pid>
	      Detect  topology	as  seen  by process <pid>, i.e. as if process
	      <pid> did	the discovery itself.  Note that this can for instance
	      change the set of	allowed	processors.  Also  show	 this  process
	      current  CPU  binding by marking the corresponding PUs (in Green
	      in the graphical output, see the COLORS section below, or	by ap-
	      pending (binding)	to the verbose text output).  If 0 is given as
	      pid, the current binding for the lstopo process will be shown.

       -p --physical
	      Use OS/physical indexes instead of logical indexes for input.

       -l --logical
	      Use logical indexes instead of  physical/OS  indexes  for	 input
	      (default).

       --version
	      Report version and exit.

       -h --help
	      Display help message and exit.

DESCRIPTION
       hwloc-info displays information about the specified objects.  It	is in-
       tended  to  be  used  with tools	such as	grep for filtering certain at-
       tribute lines.  When no object is  specified,  or  when	--topology  is
       passed, hwloc-info prints a summary of the topology.  When --support is
       passed, hwloc-info lists	the supported features for the topology.

       Objects	may be specified as location tuples, as	explained in hwloc(7).
       However hexadecimal bitmasks are	not accepted since they	may correspond
       to multiple objects.

       NOTE: It	is highly recommended that you read the	hwloc(7) overview page
       before reading this man	page.	Most  of  the  concepts	 described  in
       hwloc(7)	directly apply to the hwloc-calc utility.

EXAMPLES
       To display information about each package:

	   $ hwloc-info	package:all
	   Package L#0
	    logical index = 0
	   ...

       To display information about the	core whose physical index is 2:

	   $ hwloc-info	-p core:2
	   Core	L#1
	    logical index = 1
	    os index = 2
	   ...

       To list the OS devices that are of subtype OpenCL:

	   $ hwloc-info	-s "os[OpenCL]:all"
	   CoProc:6
	   CoProc:8

       To find the PCI bus ID of PCI devices containing	OpenCL devices:

	   $   hwloc-info   --ancestor	 PCI  --get-attr  "attr	 PCI  bus  id"
       'os[opencl]:all'
	   0000:05:00.0
	   0000:42:00.0

       To list the NUMA	nodes that are local a PU:

	   $ hwloc-info	--local-memory pu:25
	   NUMANode L#6	= local	memory #0 of PU	L#25
	    type = NUMANode
	   ...
	   NUMANode L#7	= local	memory #1 of PU	L#25
	    type = NUMANode
	   ...

       To show the best-bandwidth node(s) among	NUMA nodes local to a PU:

	   $ hwloc-info	--local-memory --best-memattr bandwidth	pu:25
	   NUMANode L#7	= local	memory #1 of PU	L#25
	    type = NUMANode
	   ...

       to find where a NUMA node is attached in	the hierarchy of CPU cores:

	   $ hwloc-info	--ancestor kind=normal --first -s numa:1
	   Package:0

       To see levels and topology info attributes stored in the	root object:

	   $ hwloc-info	levels topology
	   depth 0:	      1	Machine	(type #0)
	    depth 1:	      1	Package	(type #1)
	     depth 2:	      2	Core (type #2)
	      depth 3:	      4	PU (type #3)
	   Special depth -3:  1	NUMANode (type #13)
	   info	Backend	= Linux
	   info	LinuxCgroup = /user/622
	   info	Architecture = x86_64
	   info	hwlocVersion = 3.0.0a1-git

SEE ALSO
       hwloc(7), lstopo(1), hwloc-calc(1), hwloc-bind(1), hwloc-ps(1)

2.11.2				 Sep 26, 2024			 HWLOC-INFO(1)

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

home | help