Path to this page:
Subject: CVS commit: pkgsrc/parallel/hwloc
From: Aleksej Saushev
Date: 2015-08-15 23:27:46
Message id: 20150815212747.01D5598@cvs.netbsd.org
Log Message:
Update to hwloc 1.11.1
From Benedek Gergely on pkgsrc-users.
Version 1.11.1
--------------
* hwloc-annotate does not drop unavailable resources from the output anymore
and those may be annotated as well.
* Fix an overzealous assertion when intermediate Group object while Groups
are totally ignored.
* Fix a memory leak on failure to load a xml diff file.
* Fix some segfaults when inputting an invalid synthetic description.
Version 1.11.0
--------------
* API
+ Socket objects are renamed into Package to align with the terminology
used by processor vendors. The old HWLOC_OBJ_SOCKET type and "Socket"
name are still supported for backward compatibility.
+ HWLOC_OBJ_NODE is replaced with HWLOC_OBJ_NUMANODE for clarification.
HWLOC_OBJ_NODE is still supported for backward compatibility.
"Node" and "NUMANode" strings are supported as in \
earlier releases.
* Detection improvements
+ Add support for Intel Knights Landing Xeon Phi.
Thanks to Grzegorz Andrejczuk and Lukasz Anaczkowski.
+ Add Vendor, Model, Revision, SerialNumber, Type and LinuxDeviceID
info attributes to Block OS devices on Linux. Thanks to Vineet Pedaballe
for the help.
- Add --disable-libudev to avoid dependency on the libudev library.
+ Add "MemoryDevice" Misc objects with information about DIMMs, on Linux
when privileged and when I/O is enabled.
Thanks to Vineet Pedaballe for the help.
+ Add a PCISlot attribute to PCI devices on Linux when supported to
identify the physical PCI slot where the board is plugged.
+ Add CPUStepping info attribute on x86 processors,
thanks to Thomas Röhl for the suggestion.
+ Ignore the device-tree on non-Power architectures to avoid buggy
detection on ARM. Thanks to Orion Poplawski for reporting the issue.
+ Work-around buggy Xeon E5v3 BIOS reporting invalid PCI-NUMA affinity
for the PCI links on the second processor.
+ Add support for CUDA compute capability 5.x, thanks Benjamin Worpitz.
+ Many fixes to the x86 backend
- Add L1i and fix L2/L3 type on old AMD processors without topoext support.
- Fix Intel CPU family and model numbers when basic family isn't 6 or 15.
- Fix package IDs on recent AMD processors.
- Fix misc issues due to incomplete APIC IDs on x2APIC processors.
- Avoid buggy discovery on old SGI Altix UVs with non-unique APIC IDs.
+ Gather total machine memory on NetBSD.
* Tools
+ lstopo
- Collapse identical PCI devices unless --no-collapse is given.
This avoids gigantic outputs when a PCI device contains dozens of
identical virtual functions.
- The ASCII art output is now called "ascii", for instance in
"lstopo -.ascii".
The former "txt" extension is retained for backward compatibility.
- Automatically scales graphical box width to the inner text in Cairo,
ASCII and Windows outputs.
- Add --rect to lstopo to force rectangular layout even for NUMA nodes.
- Add --restrict-flags to configure the behavior of --restrict.
- Objects may have a "Type" info attribute to specify a better \
type name
and display it in lstopo.
- Really export all verbose information to the given output file.
+ hwloc-annotate
- May now operate on all types of objects, including I/O.
- May now insert Misc objects in the topology.
- Do not drop instruction caches and I/O devices from the output anymore.
+ Fix lstopo path in hwloc-gather-topology after install.
* Misc
+ Fix hwloc/cudart.h for machines with multiple PCI domains,
thanks to Imre Kerr for reporting the problem.
+ Fix PCI Bridge-specific depth attribute.
+ Fix hwloc_bitmap_intersect() for two infinite bitmaps.
+ Fix some corner cases in the building of levels on large NUMA machines
with non-uniform NUMA groups and I/Os.
+ Improve the performance of object insertion by cpuset for large
topologies.
+ Prefix verbose XML import errors with the source name.
+ Improve pkg-config checks and error messages.
+ Fix excluding after a component with an argument in the HWLOC_COMPONENTS
environment variable.
* Documentation
+ Fix the recommended way in documentation and examples to allocate memory
on some node, it should use HWLOC_MEMBIND_BIND.
Thanks to Nicolas Bouzat for reporting the issue.
+ Add a "Miscellaneous objects" section in the documentation.
+ Add a FAQ entry "What happens to my topology if I disable symmetric
multithreading, hyper-threading, etc. ?" to the documentation.
Version 1.10.1
--------------
* Actually remove disallowed NUMA nodes from nodesets when the whole-system
flag isn't enabled.
* Fix the gathering of PCI domains. Thanks to James Custer for reporting
the issue and providing a patch.
* Fix the merging of identical parent and child in presence of Misc objects.
Thanks to Dave Love for reporting the issue.
* Fix some misordering of children when merging with ignore_keep_structure()
in partially allowed topologies.
* Fix an overzealous assertion in the debug code when running on a single-PU
host with I/O. Thanks to Thomas Van Doren for reporting the issue.
* Don't forget to setup NUMA node object nodesets in x86 backend (for BSDs)
and OSF/Tru64 backend.
* Fix cpuid-x86 build error with gcc -O3 on x86-32. Thanks to Thomas Van Doren
for reporting the issue.
* Fix support for future very large caches in the x86 backend.
* Fix vendor/device names for SR-IOV PCI devices on Linux.
* Fix an unlikely crash in case of buggy hierarchical distance matrix.
* Fix PU os_index on some AIX releases. Thanks to Hendryk Bockelmann and
Erik Schnetter for helping debugging.
* Fix hwloc_bitmap_isincluded() in case of infinite sets.
* Change hwloc-ls.desktop into a lstopo.desktop and only install it if
lstopo is built with Cairo/X11 support. It cannot work with a non-graphical
lstopo or hwloc-ls.
* Add support for the renaming of Socket into Package in future releases.
* Add support for the replacement of HWLOC_OBJ_NODE with HWLOC_OBJ_NUMANODE
in future releases.
* Clarify the documentation of distance matrices in hwloc.h and in the manpage
of the hwloc-distances. Thanks to Dave Love for the suggestion.
* Improve some error messages by displaying more information about the
hwloc library in use.
* Document how to deal with the ABI break when upgrading to the upcoming 2.0
See "How do I handle ABI breaks and API upgrades ?" in the FAQ.
Version 1.10.0
--------------
* API
+ Add hwloc_topology_export_synthetic() to export a topology to a
synthetic string without using lstopo. See the Synthetic topologies
section in the documentation.
+ Add hwloc_topology_set/get_userdata() to let the application save
a private pointer in the topology whenever it needs a way to find
its own object corresponding to a topology.
+ Add hwloc_get_numanode_obj_by_os_index() and document that this function
as well as hwloc_get_pu_obj_by_os_index() are good at converting
nodesets and cpusets into objects.
+ hwloc_distrib() does not ignore any objects anymore when there are
too many of them. They get merged with others instead.
Thanks to Tim Creech for reporting the issue.
* Tools
+ hwloc-bind --get <command-line> now executes the command after displaying
the binding instead of ignoring the command entirely.
Thanks to John Donners for the suggestion.
+ Clarify that memory sizes shown in lstopo are local by default
unless specified (total memory added in the root object).
* Synthetic topologies
+ Synthetic topology descriptions may now specify attributes such as
memory sizes and OS indexes. See the Synthetic topologies section
in the documentation.
+ lstopo now exports in this fully-detailed format by default.
The new option --export-synthetic-flags may be used to revert
back the old format.
* Documentation
+ Add the doc/examples/ subdirectory with several real-life examples,
including the already existing hwloc-hello.C for basics.
Thanks to Rob Aulwes for the suggestion.
+ Improve the documentation of CPU and memory binding in the API.
+ Add a FAQ entry about operating system errors, especially on AMD
platforms with buggy cache information.
+ Add a FAQ entry about loading many topologies in a single program.
* Misc
+ Work around buggy Linux kernels reporting 2 sockets instead
1 socket with 2 NUMA nodes for each Xeon E5 v3 (Haswell) processor.
+ pciutils/libpci support is now removed since libpciaccess works
well and there's also a Linux-specific PCI backend. For the record,
pciutils was GPL and therefore disabled by default since v1.6.2.
+ Add --disable-cpuid configure flag to work around buggy processor
simulators reporting invalid CPUID information.
Thanks for Andrew Friedley for reporting the issue.
+ Fix a racy use of libltdl when manipulating multiple topologies in
different threads.
Thanks to Andra Hugo for reporting the issue and testing patches.
+ Fix some build failures in private/misc.h.
Thanks to Pavan Balaji and Ralph Castain for the reports.
+ Fix failures to detect X11/Xutil.h on some Solaris platforms.
Thanks to Siegmar Gross for reporting the failure.
+ The plugin ABI has changed, this release will not load plugins
built against previous hwloc releases.
Version 1.9.1
-------------
* Fix a crash when the PCI locality is invalid. Attach to the root object
instead. Thanks to Nicolas Denoyelle for reporting the issue.
* Fix -f in lstopo manpage. Thanks to Jirka Hladky for reporting the issue.
* Fix hwloc_obj_type_sscanf() and others when strncasecmp() is not properly
available. Thanks to Nick Papior Andersen for reporting the problem.
* Mark Linux file descriptors as close-on-exec to avoid leaks on exec.
* Fix some minor memory leaks.
Version 1.9.0
-------------
* API
+ Add hwloc_obj_type_sscanf() to extend hwloc_obj_type_of_string() with
type-specific attributes such as Cache/Group depth and Cache type.
hwloc_obj_type_of_string() is moved to hwloc/deprecated.h.
+ Add hwloc_linux_get_tid_last_cpu_location() for retrieving the
last CPU where a Linux thread given by TID ran.
+ Add hwloc_distrib() to extend the old hwloc_distribute[v]() functions.
hwloc_distribute[v]() is moved to hwloc/deprecated.h.
+ Don't mix total and local memory when displaying verbose object attributes
with hwloc_obj_attr_snprintf() or in lstopo.
* Backends
+ Add CPUVendor, CPUModelNumber and CPUFamilyNumber info attributes for
x86, ia64 and Xeon Phi sockets on Linux, to extend the x86-specific
support added in v1.8.1. Requested by Ralph Castain.
+ Add many CPU- and Platform-related info attributes on ARM and POWER
platforms, in the Machine and Socket objects.
+ Add CUDA info attributes describing the number of multiprocessors and
cores and the size of the global, shared and L2 cache memories in CUDA
OS devices.
+ Add OpenCL info attributes describing the number of compute units and
the global memory size in OpenCL OS devices.
+ The synthetic backend now accepts extended types such as L2Cache, L1i or
Group3. lstopo also exports synthetic strings using these extended types.
* Tools
+ lstopo
- Do not overwrite output files by default anymore.
Pass -f or --force to enforce it.
- Display OpenCL, CUDA and Xeon Phi numbers of cores and memory sizes
in the graphical output.
- Fix export to stdout when specifying a Cairo-based output type
with --of.
+ hwloc-ps
- Add -e or --get-last-cpu-location to report where processes/threads
run instead of where they are bound.
- Report locations as likely-more-useful objects such as Cores or Sockets
instead of Caches when possible.
+ hwloc-bind
- Fix failure on Windows when not using --pid.
- Add -e as a synonym to --get-last-cpu-location.
+ hwloc-distrib
- Add --reverse to distribute using last objects first and singlify
into last bits first. Thanks to Jirka Hladky for the suggestion.
+ hwloc-info
- Report unified caches when looking for data or instruction cache
ancestor objects.
* Misc
+ Add experimental Visual Studio support under contrib/windows.
Thanks to Eloi Gaudry for his help and for providing the first draft.
+ Fix some overzealous assertions and warnings about the ordering of
objects on a level with respect to cpusets. The ordering is only
guaranteed for complete cpusets (based on the first bit in sets).
+ Fix some memory leaks when importing xml diffs and when exporting a
"too complex" entry.
Version 1.8.1
-------------
* Fix the cpuid code on Windows 64bits so that the x86 backend gets
enabled as expected and can populate CPU information.
Thanks to Robin Scher for reporting the problem.
* Add CPUVendor/CPUModelNumber/CPUFamilyNumber attributes when running
on x86 architecture. Thanks to Ralph Castain for the suggestion.
* Work around buggy BIOS reporting duplicate NUMA nodes on Linux.
Thanks to Jeff Becker for reporting the problem and testing the patch.
* Add a name to the lstopo graphical window. Thanks to Michael Prokop
for reporting the issue.
Version 1.8.0
-------------
* New components
+ Add the "linuxpci" component that always works on Linux even when
libpciaccess and libpci aren't available (and even with a modified
file-system root). By default the old "pci" component runs first
because "linuxpci" lacks device names (obj->name is always NULL).
* API
+ Add the topology difference API in hwloc/diff.h for manipulating
many similar topologies.
+ Add hwloc_topology_dup() for duplicating an entire topology.
+ hwloc.h and hwloc/helper.h have been reorganized to clarify the
documentation sections. The actual inline code has moved out of hwloc.h
into the new hwloc/inlines.h.
+ Deprecated functions are now in hwloc/deprecated.h, and not in the
official documentation anymore.
* Tools
+ Add hwloc-diff and hwloc-patch tools together with the new diff API.
+ Add hwloc-compress-dir to (de)compress an entire directory of XML files
using hwloc-diff and hwloc-patch.
+ Object colors in the graphical output of lstopo may be changed by adding
a "lstopoStyle" info attribute. See CUSTOM COLORS in the lstopo(1) \
manpage
for details. Thanks to Jirka Hladky for discussing the idea.
+ hwloc-gather-topology may now gather I/O-related files on Linux when
--io is given. Only the linuxpci component supports discovering I/O
objects from these extended tarballs.
+ hwloc-annotate now supports --ri to remove/replace info attributes with
a given name.
+ hwloc-info supports "root" and "all" special locations \
for dumping
information about the root object.
+ lstopo now supports --append-legend to append custom lines of text
to the legend in the graphical output. Thanks to Jirka Hladky for
discussing the idea.
+ hwloc-calc and friends have a more robust parsing of locations given
on the command-line and they report useful error messages about it.
+ Add --whole-system to hwloc-bind, hwloc-calc, hwloc-distances and
hwloc-distrib, and add --restrict to hwloc-bind for uniformity among
tools.
* Misc
+ Calling hwloc_topology_load() or hwloc_topology_set_*() on an already
loaded topology now returns an error (deprecated since release 1.6.1).
+ Fix the initialisation of cpusets and nodesets in Group objects added
when inserting PCI hostbridges.
+ Never merge Group objects that were added explicitly by the user with
hwloc_custom_insert_group_object_by_parent().
+ Add a sanity check during dynamic plugin loading to prevent some
crashes when hwloc is dynamically loaded by another plugin mechanisms.
+ Add --with-hwloc-plugins-path to specify the install/load directories
of plugins.
+ Add the MICSerialNumber info attribute to the root object when running
hwloc inside a Xeon Phi to match the same attribute in the MIC OS device
when running in the host.
Version 1.7.2
-------------
* Do not create invalid block OS devices on very old Linux kernel such
as RHEL4 2.6.9.
* Fix PCI subvendor/device IDs.
* Fix the management of Misc objects inserted by parent.
Thanks to Jirka Hladky for reporting the problem.
* Add a Port<n>State into attribute to OpenFabrics OS devices.
* Add a MICSerialNumber info attribute to Xeon PHI/MIC OS devices.
* Improve verbose error messages when failing to load from XML.
Files: