hwloc Changelog

What's new in hwloc 1.4.1

Mar 7, 2012
  • This release contains all changes from v1.3.2.
  • Fix hwloc_alloc_membind, thanks Karl Napf for reporting the issue.
  • Fix memory leaks in some get_membind() functions.
  • Fix helpers converting from Linux libnuma to hwloc (hwloc/linux-libnuma.h) in case of out-of-order NUMA node ids.
  • Fix some overzealous assertions in the distance grouping code.
  • Workaround BIOS reporting empty I/O locality in cuda and openfabrics helpers on Linux. Thanks to Albert Solernou for reporting the problem.
  • Install a valgrind suppressions file hwloc-valgrind.supp (see the FAQ).
  • Fix memory binding documentation. Thanks to Karl Napf for reporting the issues.

New in hwloc 1.4 (Feb 6, 2012)

  • Major features:
  • Add "custom" interface and "assembler" tools to build multi-nodetopology. See the Multi-node Topologies section in the documentationfor details.
  • Interface improvements:
  • Add symmetric_subtree object attribute to ease assumptions when consultingregular symmetric topologies.
  • Add a CPUModel and CPUType info attribute to Socket objects on Linuxand Solaris.
  • Add hwloc_get_obj_index_inside_cpuset() to retrieve the "logical" indexof an object within a subtree of the topology.
  • Add more NVIDIA CUDA helpers in cuda.h and cudart.h to find hwloc objectscorresponding to CUDA devices.
  • Discovery improvements:
  • Add a group object above partial distance matrices to make surethe matrices are available in the final topology, except when thisnew object would contradict the existing hierarchy.
  • Grouping by distances now also works when loading from XML.
  • Fix some corner cases in object insertion, for instance when dealingwith NUMA nodes without any CPU.
  • Backends:
  • Implement hwloc_get_area_membind() on Linux.
  • Honor I/O topology flags when importing from XML.
  • Further improve XML-related error checking and reporting.
  • Hide synthetic topology error messages unless HWLOC_SYNTHETIC_VERBOSE=1.
  • Tools:
  • Add synthetic exporting of symmetric topologies to lstopo.
  • lstopo --horiz and --vert can now be applied to some specific object types.
  • lstopo -v -p now displays distance matrices with physical indexes.
  • Add hwloc-distances utility to list distances.
  • Documentation:
  • Fix and/or document the behavior of most inline functions in hwloc/helper.hwhen the topology contains some I/O or Misc objects.
  • Backend documentation enhancements.
  • Bug fixes:
  • Fix missing last bit in hwloc_linux_get_thread_cpubind().Thanks to Carolina Gómez-Tostón Gutiérrez for reporting the issue.
  • Fix FreeBSD build without cpuid support.
  • Fix several Windows build issues.
  • Fix inline keyword definition in public headers.
  • Fix dependencies in the embedded library.
  • Improve visibility support detection. Thanks to Dave Love for providingthe patch.
  • Remove references to internal symbols in the tools.

New in hwloc 1.3.1 (Dec 21, 2011)

  • Fix pciutils detection with pkg-config when not installed in standard directories.
  • Fix visibility options detection with the Solaris Studio compiler. Thanks to Igor Galić and Terry Dontje for reporting the problems.
  • Fix support for old Linux sched.h headers such as those found on Red Hat 8. Thanks to Paul H. Hargrove for reporting the problems.
  • Fix inline and attribute support for Solaris compilers. Thanks to Dave Love for reporting the problems.
  • Print a short summary at the end of the configure output. Thanks to Stefan Eilemann for the suggestion.
  • Add --disable-libnuma configure option to disable libnuma-based memory binding support on Linux. Thanks to Rayson Ho for the suggestion.
  • Make hwloc's configure script properly obey $PKG_CONFIG. Thanks to Nathan Phillip Brink for raising the issue.
  • Silence some harmless pciutils warnings, thanks to Paul H. Hargrove for reporting the problem.
  • Fix the documentation with respect to hwloc_pid_t and hwloc_thread_t being either pid_t and pthread_t on Unix, or HANDLE on Windows.

New in hwloc 1.2.1 (Aug 23, 2011)

  • Improve support of AMD Bulldozer "Compute-Unit" modules by detecting logical processors with different core IDs on Linux.
  • Fix hwloc-ps crash when listing processes from another Linux cpuset. Thanks to Carl Smith for reporting the problem.
  • Fix build on AIX and Solaris. Thanks to Carl Smith and Andreas Kupries for reporting the problems.
  • Fix cache size detection on Darwin. Thanks to Erkcan Özcan for reporting the problem.
  • Make configure fail if --enable-xml or --enable-cairo is given and proper support cannot be found. Thanks to Andreas Kupries for reporting the XML problem.
  • Fix spurious L1 cache detection on AIX. Thanks to Hendryk Bockelmann for reporting the problem.
  • Fix hwloc_get_last_cpu_location(THREAD) on Linux. Thanks to Gabriele Fatigati for reporting the problem.
  • Fix object distance detection on Solaris.
  • Add pthread_self weak symbol to ease static linking.
  • Minor documentation fixes.

New in hwloc 1.1.2 (Apr 8, 2011)

  • Fix a segfault in the distance-based grouping code when some objects are not placed in any group. Thanks to Bernd Kallies for reporting the problem and providing a patch.
  • Fix the command-line parsing of hwloc-bind --mempolicy interleave. Thanks to Guy Streeter for reporting the problem.
  • Stop truncating the output in hwloc_obj_attr_snprintf() and in the corresponding lstopo output. Thanks to Guy Streeter for reporting the problem.
  • Fix object levels ordering in synthetic topologies.
  • Fix potential incoherency between device tree and kernel information, when SMT is disabled on Power machines.
  • Fix and document the behavior of hwloc_topology_set_synthetic() in case of invalid argument. Thanks to Guy Streeter for reporting the problem.
  • Add some verbose error message reporting when it looks like the OS gives erroneous information.
  • Do not include unistd.h and stdint.h in public headers on Windows.
  • Move config.h files into their own subdirectories to avoid name conflicts when AC_CONFIG_HEADERS adds -I's for them.
  • Remove the use of declaring variables inside "for" loops.
  • Some other minor fixes.
  • Many minor documentation fixes.

New in hwloc 1.0.1 (Jun 5, 2010)

  • Various Solaris fixes.
  • Fix "non-native" builds on x86 platforms (e.g., when building 32 bit executables with compilers that natively build 64 bit).
  • Ignore sockets with unknown ID values (which fixes issues on POWER7 machines). Thanks to Greg Bauer for reporting the issue.
  • Various man page clarifications and minor updates.
  • Fixed memory leaks in hwloc_setup_group_from_min_distance_clique().
  • Fix cache type filtering on MS Windows 7. Thanks to Αλέξανδρος Παπαδογιαννάκ for reporting the issue.
  • Fixed warnings when compiling with -DNDEBUG.

New in hwloc 1.0 (May 19, 2010)

  • The ABI of the library has changed.
  • Backend updates:
  • Add FreeBSD support.
  • Add x86 cpuid based backend.
  • Add Linux cgroup support to the Linux cpuset code.
  • Support binding of entire multithreaded process on Linux.
  • Fix and enable Group support in Windows.
  • Cleanup XML export/import.
  • Objects:
  • HWLOC_OBJ_PROC is renamed into HWLOC_OBJ_PU for "Processing Unit", its stringified type name is now "PU".
  • Use new HWLOC_OBJ_GROUP objects instead of MISC when grouping objects according to NUMA distances or arbitrary OS aggregation.
  • Rework memory attributes.
  • Add different cpusets in each object to specify processors that are offline, unavailable, ...
  • Cleanup the storage of object names and DMI infos.
  • Features:
  • Add support for looking up specific PID topology information.
  • Add hwloc_topology_export_xml() to export the topology in a XML file.
  • Add hwloc_topology_get_support() to retrieve the supported features for the current topology context.
  • Support non-SYSTEM object as the root of the tree, use MACHINE in most common cases.
  • Add hwloc_get_*cpubind() routines to retrieve the current binding of processes and threads.
  • API:
  • Add HWLOC_API_VERSION to help detect the currently used API version.
  • Add missing ending "e" to *comparefunctions.
  • Add several routines to emulate PLPA functions.
  • Rename and rework the cpuset and/or/xor/not/clear operators to output their result in a dedicated argument instead of modifying one input.
  • Deprecate hwloc_obj_snprintf() in favor of hwloc_obj_type/attr_snprintf().
  • Clarify the use of parent and ancestor in the API, do not use father.
  • Replace hwloc_get_system_obj() with hwloc_get_root_obj().
  • Return -1 instead of HWLOC_OBJ_TYPE_MAX in the API since the latter isn't public.
  • Relax constraints in hwloc_obj_type_of_string().
  • Improve displaying of memory sizes.
  • Add 0x prefix to cpuset strings.
  • Tools:
  • lstopo now displays logical indexes by default, use --physical to revert back to OS/physical indexes.
  • Add colors in the lstopo graphical outputs to distinguish between online, offline, reserved, ... objects.
  • Extend lstopo to show cpusets, filter objects by type, ...
  • Renamed hwloc-mask into hwloc-calc which supports many new options.
  • Documentation:
  • Add a hwloc(7) manpage containing general information.
  • Add documentation about how to switch from PLPA to hwloc.
  • Cleanup the distributed documentation files.
  • Miscellaneous:
  • Many compilers warning fixes.
  • Cleanup the ABI by using the visibility attribute.
  • Add project embedding support.

New in hwloc 1.0 RC1 (Apr 20, 2010)

  • The ABI of the library has changed.
  • Backend updates:
  • Add FreeBSD support.
  • Add x86 cpuid based backend.
  • Add Linux cgroup support to the Linux cpuset code.
  • Support binding of entire multithreaded process on Linux.
  • Cleanup XML export/import.
  • Objects:
  • HWLOC_OBJ_PROC is renamed into HWLOC_OBJ_PU for "Processing Unit",its stringified type name is now "PU".
  • Use new HWLOC_OBJ_GROUP objects instead of MISC when groupingobjects according to NUMA distances or arbitrary OS aggregation.
  • Rework memory attributes.
  • Add different cpusets in each object to specify processors thatare offline, unavailable, ...
  • Cleanup the storage of object names and DMI infos.
  • Features:
  • Add support for looking up specific PID topology information.
  • Add hwloc_topology_export_xml() to export the topology in a XML file.
  • Add hwloc_topology_get_support() to retrieve the supported featuresfor the current topology context.
  • Support non-SYSTEM object as the root of the tree, use MACHINE inmost common cases.
  • Add hwloc_get_*cpubind() routines to retrieve the current bindingof processes and threads.
  • API:
  • Add HWLOC_API_VERSION to help detect the currently used API version.
  • Add missing ending "e" to *compare
  • functions.
  • Add several routines to emulate PLPA functions.
  • Rename and rework the cpuset and/or/xor/not/clear operators to outputtheir result in a dedicated argument instead of modifying one input.
  • Deprecate hwloc_obj_snprintf() in favor of hwloc_obj_type/attr_snprintf().
  • Clarify the use of parent and ancestor in the API, do not use father.
  • Replace hwloc_get_system_obj() with hwloc_get_root_obj().
  • Return -1 instead of HWLOC_OBJ_TYPE_MAX in the API since the latterisn't public.
  • Relax constraints in hwloc_obj_type_of_string().
  • Improve displaying of memory sizes.
  • Add 0x prefix to cpuset strings.
  • Tools:
  • lstopo now displays logical indexes by default, use --physical torevert back to OS/physical indexes.
  • Add colors in the lstopo graphical outputs to distinguish between online,offline, reserved, ... objects.
  • Extend lstopo to show cpusets, filter objects by type, ...
  • Renamed hwloc-mask into hwloc-calc which supports many new options.
  • Documentation:
  • Add a hwloc(7) manpage containing general information.
  • Add documentation about how to switch from PLPA to hwloc.
  • Cleanup the distributed documentation files.
  • Miscellaneous:
  • Many compilers warning fixes.
  • Cleanup the ABI by using the visibility attribute.
  • Add project embedding support.