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 sup-
     ported 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  ob-
     ject 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  --sup-
     port).

     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 ob-
	    jects.  This is equivalent to passing levels as a target  object  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_topology_get_sup-
	    port()  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 com-
	    mand-line.

     -i <path>, --input <path>
	    Read the topology from <path> instead of discovering the topology 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	gathered
	    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 topol-
	    ogy 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 ob-
	    ject is displayed.

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

	    Only the value is reported, any other prefix or object name  is  ig-
	    nored, 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 ances-
	    tors  up to the root of the topology.  This is identical to --ances-
	    tor 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 objects,
	    excluding caches), kind=cache  (all  caches,  including  memory-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	objects,
	    excluding  caches),  kind=cache  (all  caches, including memory-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 dis-
	    played if their locality either contains or is contained in the  lo-
	    cality 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 default nodes are reported if no  best  could  be
	    found (see --default-nodes). If neither best nor default nodes could
	    be found, all local nodes are reported.

	    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.

     --default-nodes
	    Display  information  about the default NUMA nodes that are local to
	    the given object.  This usually includes DRAM memory nodes (or nodes
	    of the same memory tier) rather than nodes with specific  character-
	    istics  (HBM,  NVM, CXL, etc).  See hwloc_topology_get_default_node-
	    set() for details.

     --first
	    For each input object, only report the first matching output  object
	    (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,	increas-
	    ing towards the root of the topology).

     --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	--restrict-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 option
	    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  indexes
	    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  speci-
	    fied,  all objects of the given type are removed.  If "all", all ob-
	    jects 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_topol-
	    ogy_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 identical 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 devices,
	    ...) and interesting bridges are shown.

     --thissystem
	    Assume that the selected backend provides the topology for the  sys-
	    tem  on  which we are running.  This is useful when using --restrict
	    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 appending  (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 (de-
	    fault).

     --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 attribute
     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 be-
     fore reading this man page.  Most of the concepts described in hwloc(7) di-
     rectly 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.12.1				  May 12, 2025			   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+15.1.quarterly>

home | help