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.