Hardware Locality (hwloc): Miscellaneous objects

Hardware Locality (hwloc) 2.9.3

Miscellaneous objects

hwloc topologies may be annotated with Misc objects (of type `HWLOC_OBJ_MISC`) either automatically or by the user. This is a flexible way to annotate topologies with large sets of information since Misc objects may be inserted anywhere in the topology (to annotate specific objects or parts of the topology), even below other Misc objects, and each of them may contain multiple attributes (see also How do I annotate the topology with private notes?).

These Misc objects may have a `subtype` field to replace `Misc` with something else in the lstopo output.

# Misc objects added by hwloc

hwloc only uses Misc objects when other object types are not sufficient, and when the Misc object type is not filtered-out anymore. This currently includes:

- Memory modules (DIMMs), on Linux when privileged and when `dmi-sysfs` is supported by the kernel. These objects have a `subtype` field of value `MemoryModule`. They are currently always attached to the root object. Their attributes describe the DIMM vendor, model, etc. `lstopo -v` displays them as:
  Misc(MemoryModule) (P#1 DeviceLocation="Bottom-Slot 2(right)" BankLocation="BANK 2" Vendor=Elpida SerialNumber=21733667 AssetTag=9876543210 PartNumber="EBJ81UG8EFU0-GN-F ")
- Displaying process binding in `lstopo --top`. These objects have a `subtype` field of value `Process` and a name attribute made of their PID and program name. They are attached below the object they are bound to. The textual `lstopo` displays them as:
  PU L#0 (P#0)
  Misc(Process) 4445 myprogram

# Annotating topologies with Misc objects

The user may annotate hwloc topologies with its own Misc objects. This can be achieved with `hwloc_topology_insert_misc_object()` as well as hwloc-annotate command-line tool.