Skip to content

Commit

Permalink
hwloc: Update to v2.10.0
Browse files Browse the repository at this point in the history
  • Loading branch information
stwhite91 authored and evan-charmworks committed Feb 14, 2024
1 parent 32de593 commit a69973a
Show file tree
Hide file tree
Showing 89 changed files with 4,969 additions and 8,376 deletions.
16 changes: 0 additions & 16 deletions contrib/hwloc/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ EXTRA_DIST = \
SUBDIRS = include hwloc

if HWLOC_BUILD_STANDALONE
if BUILD_NETLOC
SUBDIRS += netloc
endif
SUBDIRS += utils tests contrib/systemd contrib/completion contrib/misc contrib/hwloc-ps.www
# We need doc/ if HWLOC_BUILD_DOXYGEN, or during make install if HWLOC_INSTALL_DOXYGEN.
# There's no INSTALL_SUBDIRS, so always enter doc/ and check HWLOC_BUILD/INSTALL_DOXYGEN there
Expand All @@ -35,24 +32,12 @@ DIST_SUBDIRS = $(SUBDIRS)
if HWLOC_BUILD_STANDALONE
DIST_SUBDIRS += contrib/windows
EXTRA_DIST += contrib/windows-cmake
if !BUILD_NETLOC
DIST_SUBDIRS += netloc
endif
endif

# Only install the pkg file if we're building in standalone mode (and not on Windows)
if HWLOC_BUILD_STANDALONE
hwlocpkgconfigdir = $(libdir)/pkgconfig
hwlocpkgconfig_DATA = hwloc.pc
if BUILD_NETLOC
# JMS Need to compare hwloc.pc and netloc.pc -- I think netloc.pc is
# missing some things.
# pkgconfig_DATA += netloc.pc Disabled until the netloc API is public
EXTRA_DIST += netloc.pc
if BUILD_NETLOCSCOTCH
hwlocpkgconfig_DATA += netlocscotch.pc
endif BUILD_NETLOCSCOTCH
endif BUILD_NETLOC
endif HWLOC_BUILD_STANDALONE

# Only install the valgrind suppressions file if we're building in
Expand All @@ -69,7 +54,6 @@ else !HWLOC_BUILD_STANDALONE
dist-hook:
@MKDIR_P@ \
$(distdir)/doc \
$(distdir)/netloc \
$(distdir)/utils \
$(distdir)/tests \
$(distdir)/contrib/completion \
Expand Down
82 changes: 14 additions & 68 deletions contrib/hwloc/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -94,21 +94,14 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
@BUILD_NETLOC_TRUE@@HWLOC_BUILD_STANDALONE_TRUE@am__append_1 = netloc
# We need doc/ if HWLOC_BUILD_DOXYGEN, or during make install if HWLOC_INSTALL_DOXYGEN.
# There's no INSTALL_SUBDIRS, so always enter doc/ and check HWLOC_BUILD/INSTALL_DOXYGEN there
@HWLOC_BUILD_STANDALONE_TRUE@am__append_2 = utils tests \
@HWLOC_BUILD_STANDALONE_TRUE@am__append_1 = utils tests \
@HWLOC_BUILD_STANDALONE_TRUE@ contrib/systemd \
@HWLOC_BUILD_STANDALONE_TRUE@ contrib/completion contrib/misc \
@HWLOC_BUILD_STANDALONE_TRUE@ contrib/hwloc-ps.www doc
@HWLOC_BUILD_STANDALONE_TRUE@am__append_3 = contrib/windows
@HWLOC_BUILD_STANDALONE_TRUE@am__append_4 = contrib/windows-cmake
@BUILD_NETLOC_FALSE@@HWLOC_BUILD_STANDALONE_TRUE@am__append_5 = netloc
# JMS Need to compare hwloc.pc and netloc.pc -- I think netloc.pc is
# missing some things.
# pkgconfig_DATA += netloc.pc Disabled until the netloc API is public
@BUILD_NETLOC_TRUE@@HWLOC_BUILD_STANDALONE_TRUE@am__append_6 = netloc.pc
@BUILD_NETLOCSCOTCH_TRUE@@BUILD_NETLOC_TRUE@@HWLOC_BUILD_STANDALONE_TRUE@am__append_7 = netlocscotch.pc
@HWLOC_BUILD_STANDALONE_TRUE@am__append_2 = contrib/windows
@HWLOC_BUILD_STANDALONE_TRUE@am__append_3 = contrib/windows-cmake
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/hwloc.m4 \
Expand All @@ -122,8 +115,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/hwloc.m4 \
$(top_srcdir)/config/ltoptions.m4 \
$(top_srcdir)/config/ltsugar.m4 \
$(top_srcdir)/config/ltversion.m4 \
$(top_srcdir)/config/lt~obsolete.m4 \
$(top_srcdir)/config/netloc.m4 $(top_srcdir)/configure.ac
$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
Expand All @@ -136,11 +128,9 @@ CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
$(top_builddir)/include/hwloc/autogen/config.h
CONFIG_CLEAN_FILES = doc/Makefile doc/examples/Makefile \
doc/doxygen-config.cfg utils/Makefile utils/hwloc/Makefile \
utils/lstopo/Makefile hwloc.pc \
utils/netloc/infiniband/Makefile utils/netloc/draw/Makefile \
utils/netloc/scotch/Makefile utils/netloc/mpi/Makefile \
netloc.pc netlocscotch.pc tests/Makefile tests/hwloc/Makefile \
tests/hwloc/linux/Makefile tests/hwloc/linux/allowed/Makefile \
utils/lstopo/Makefile hwloc.pc tests/Makefile \
tests/hwloc/Makefile tests/hwloc/linux/Makefile \
tests/hwloc/linux/allowed/Makefile \
tests/hwloc/linux/gather/Makefile tests/hwloc/x86/Makefile \
tests/hwloc/x86+linux/Makefile tests/hwloc/xml/Makefile \
tests/hwloc/ports/Makefile tests/hwloc/rename/Makefile \
Expand All @@ -164,11 +154,9 @@ CONFIG_CLEAN_FILES = doc/Makefile doc/examples/Makefile \
utils/hwloc/test-hwloc-dump-hwdata/Makefile \
utils/hwloc/test-hwloc-dump-hwdata/test-hwloc-dump-hwdata.sh \
utils/lstopo/test-lstopo.sh utils/lstopo/test-lstopo-shmem.sh \
utils/netloc/infiniband/netloc_ib_gather_raw \
contrib/hwloc-ps.www/Makefile contrib/systemd/Makefile \
contrib/completion/Makefile contrib/misc/Makefile \
contrib/windows/Makefile tests/netloc/Makefile \
tests/netloc/tests.sh tests/hwloc/ports/topology-solaris.c \
contrib/windows/Makefile tests/hwloc/ports/topology-solaris.c \
tests/hwloc/ports/topology-solaris-chiptype.c \
tests/hwloc/ports/topology-aix.c \
tests/hwloc/ports/topology-windows.c \
Expand Down Expand Up @@ -270,7 +258,6 @@ am__define_uniq_tagged_files = \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/hwloc.pc.in \
$(srcdir)/netloc.pc.in $(srcdir)/netlocscotch.pc.in \
$(top_srcdir)/./config/ar-lib $(top_srcdir)/./config/compile \
$(top_srcdir)/./config/config.guess \
$(top_srcdir)/./config/config.sub \
Expand Down Expand Up @@ -304,8 +291,6 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/hwloc.pc.in \
$(top_srcdir)/tests/hwloc/x86/test-topology.sh.in \
$(top_srcdir)/tests/hwloc/xml/Makefile.in \
$(top_srcdir)/tests/hwloc/xml/test-topology.sh.in \
$(top_srcdir)/tests/netloc/Makefile.in \
$(top_srcdir)/tests/netloc/tests.sh.in \
$(top_srcdir)/utils/Makefile.in \
$(top_srcdir)/utils/hwloc/Makefile.in \
$(top_srcdir)/utils/hwloc/hwloc-compress-dir.in \
Expand All @@ -325,12 +310,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/hwloc.pc.in \
$(top_srcdir)/utils/lstopo/lstopo-android.c \
$(top_srcdir)/utils/lstopo/lstopo-windows.c \
$(top_srcdir)/utils/lstopo/test-lstopo-shmem.sh.in \
$(top_srcdir)/utils/lstopo/test-lstopo.sh.in \
$(top_srcdir)/utils/netloc/draw/Makefile.in \
$(top_srcdir)/utils/netloc/infiniband/Makefile.in \
$(top_srcdir)/utils/netloc/infiniband/netloc_ib_gather_raw.in \
$(top_srcdir)/utils/netloc/mpi/Makefile.in \
$(top_srcdir)/utils/netloc/scotch/Makefile.in ./config/ar-lib \
$(top_srcdir)/utils/lstopo/test-lstopo.sh.in ./config/ar-lib \
./config/compile ./config/config.guess ./config/config.sub \
./config/install-sh ./config/ltmain.sh ./config/missing \
AUTHORS COPYING NEWS README
Expand Down Expand Up @@ -382,7 +362,6 @@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
ARCHIVEMOUNT = @ARCHIVEMOUNT@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
Expand Down Expand Up @@ -420,6 +399,7 @@ ETAGS = @ETAGS@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIG2DEV = @FIG2DEV@
FILECMD = @FILECMD@
GREP = @GREP@
GS = @GS@
HWLOC_CAIRO_CFLAGS = @HWLOC_CAIRO_CFLAGS@
Expand Down Expand Up @@ -508,17 +488,6 @@ MAKEINDEX = @MAKEINDEX@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MPI_CPPFLAGS = @MPI_CPPFLAGS@
MPI_LDADD = @MPI_LDADD@
NETLOC_CFLAGS = @NETLOC_CFLAGS@
NETLOC_CPPFLAGS = @NETLOC_CPPFLAGS@
NETLOC_EMBEDDED_CFLAGS = @NETLOC_EMBEDDED_CFLAGS@
NETLOC_EMBEDDED_CPPFLAGS = @NETLOC_EMBEDDED_CPPFLAGS@
NETLOC_EMBEDDED_LDADD = @NETLOC_EMBEDDED_LDADD@
NETLOC_EMBEDDED_LIBS = @NETLOC_EMBEDDED_LIBS@
NETLOC_LDFLAGS = @NETLOC_LDFLAGS@
NETLOC_LIBS = @NETLOC_LIBS@
NETLOC_LIBS_PRIVATE = @NETLOC_LIBS_PRIVATE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
Expand Down Expand Up @@ -587,7 +556,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
libhwloc_so_name = @libhwloc_so_name@
libhwloc_so_version = @libhwloc_so_version@
libnetloc_so_version = @libnetloc_so_version@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
Expand All @@ -610,7 +578,6 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
xz = @xz@

# Note that the -I directory must *exactly* match what was specified
# via AC_CONFIG_MACRO_DIR in configure.ac.
Expand All @@ -622,18 +589,16 @@ ACLOCAL_AMFLAGS = -I ./config
#
EXTRA_DIST = README VERSION COPYING AUTHORS \
config/hwloc_get_version.sh config/distscript.sh \
config/libtool-big-sur-fixup.patch $(am__append_4) \
$(am__append_6)
SUBDIRS = include hwloc $(am__append_1) $(am__append_2)
config/libtool-big-sur-fixup.patch $(am__append_3)
SUBDIRS = include hwloc $(am__append_1)

# Do not let automake automatically add the non-standalone dirs to the
# distribution tarball if we're building in embedded mode.
DIST_SUBDIRS = $(SUBDIRS) $(am__append_3) $(am__append_5)
DIST_SUBDIRS = $(SUBDIRS) $(am__append_2)

# Only install the pkg file if we're building in standalone mode (and not on Windows)
@HWLOC_BUILD_STANDALONE_TRUE@hwlocpkgconfigdir = $(libdir)/pkgconfig
@HWLOC_BUILD_STANDALONE_TRUE@hwlocpkgconfig_DATA = hwloc.pc \
@HWLOC_BUILD_STANDALONE_TRUE@ $(am__append_7)
@HWLOC_BUILD_STANDALONE_TRUE@hwlocpkgconfig_DATA = hwloc.pc

# Only install the valgrind suppressions file if we're building in
# standalone mode
Expand Down Expand Up @@ -711,18 +676,6 @@ utils/lstopo/Makefile: $(top_builddir)/config.status $(top_srcdir)/utils/lstopo/
cd $(top_builddir) && $(SHELL) ./config.status $@
hwloc.pc: $(top_builddir)/config.status $(srcdir)/hwloc.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
utils/netloc/infiniband/Makefile: $(top_builddir)/config.status $(top_srcdir)/utils/netloc/infiniband/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
utils/netloc/draw/Makefile: $(top_builddir)/config.status $(top_srcdir)/utils/netloc/draw/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
utils/netloc/scotch/Makefile: $(top_builddir)/config.status $(top_srcdir)/utils/netloc/scotch/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
utils/netloc/mpi/Makefile: $(top_builddir)/config.status $(top_srcdir)/utils/netloc/mpi/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
netloc.pc: $(top_builddir)/config.status $(srcdir)/netloc.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
netlocscotch.pc: $(top_builddir)/config.status $(srcdir)/netlocscotch.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
tests/Makefile: $(top_builddir)/config.status $(top_srcdir)/tests/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
tests/hwloc/Makefile: $(top_builddir)/config.status $(top_srcdir)/tests/hwloc/Makefile.in
Expand Down Expand Up @@ -787,8 +740,6 @@ utils/lstopo/test-lstopo.sh: $(top_builddir)/config.status $(top_srcdir)/utils/l
cd $(top_builddir) && $(SHELL) ./config.status $@
utils/lstopo/test-lstopo-shmem.sh: $(top_builddir)/config.status $(top_srcdir)/utils/lstopo/test-lstopo-shmem.sh.in
cd $(top_builddir) && $(SHELL) ./config.status $@
utils/netloc/infiniband/netloc_ib_gather_raw: $(top_builddir)/config.status $(top_srcdir)/utils/netloc/infiniband/netloc_ib_gather_raw.in
cd $(top_builddir) && $(SHELL) ./config.status $@
contrib/hwloc-ps.www/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/hwloc-ps.www/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
contrib/systemd/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/systemd/Makefile.in
Expand All @@ -799,10 +750,6 @@ contrib/misc/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/misc/
cd $(top_builddir) && $(SHELL) ./config.status $@
contrib/windows/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/windows/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
tests/netloc/Makefile: $(top_builddir)/config.status $(top_srcdir)/tests/netloc/Makefile.in
cd $(top_builddir) && $(SHELL) ./config.status $@
tests/netloc/tests.sh: $(top_builddir)/config.status $(top_srcdir)/tests/netloc/tests.sh.in
cd $(top_builddir) && $(SHELL) ./config.status $@

mostlyclean-libtool:
-rm -f *.lo
Expand Down Expand Up @@ -1304,7 +1251,6 @@ uninstall-am: uninstall-dist_pkgdataDATA uninstall-hwlocpkgconfigDATA \
@HWLOC_BUILD_STANDALONE_FALSE@dist-hook:
@HWLOC_BUILD_STANDALONE_FALSE@ @MKDIR_P@ \
@HWLOC_BUILD_STANDALONE_FALSE@ $(distdir)/doc \
@HWLOC_BUILD_STANDALONE_FALSE@ $(distdir)/netloc \
@HWLOC_BUILD_STANDALONE_FALSE@ $(distdir)/utils \
@HWLOC_BUILD_STANDALONE_FALSE@ $(distdir)/tests \
@HWLOC_BUILD_STANDALONE_FALSE@ $(distdir)/contrib/completion \
Expand Down
121 changes: 120 additions & 1 deletion contrib/hwloc/NEWS
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Copyright © 2009 CNRS
Copyright © 2009-2022 Inria. All rights reserved.
Copyright © 2009-2023 Inria. All rights reserved.
Copyright © 2009-2013 Université Bordeaux
Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
Copyright © 2020 Hewlett Packard Enterprise. All rights reserved.
Expand All @@ -17,6 +17,117 @@ bug fixes (and other actions) for each version of hwloc since version
0.9.


Version 2.10.0
--------------
* Heterogeneous Memory core improvements
+ Better heuristics to identify the subtype of memory such as HBM,
DRAM, NVM, CXL-DRAM, etc.
+ Build memory tiers, i.e. sets of NUMA nodes with the same subtype
and similar performance.
- NUMA node tier ranks are exposed in the new MemoryTier info
attribute (starts from 0 for highest bandwidth tier)..
+ See the new Heterogeneous Memory section in the documentation.
* API
+ Add hwloc_topology_free_group_object() to discard a Group created
by hwloc_topology_alloc_group_object().
* Linux backend
+ Fix cpukinds on NVIDIA Grace to report identical cores even if they
actually have very small frequency differences.
Thanks to John C. Linford for the report.
+ Add CXLDevice attributes to CXL DAX objects and NUMA nodes to show
which PCI device implements which window.
+ Ignore buggy memory-side caches and memory attributes when fake NUMA
emulation is enabled on the Linux kernel command-line.
+ Add more info attributes in MemoryModule Misc objects,
thanks to Zubiao Xiong for the patch.
+ Get CPUModel and CPUFamily info attributes on LoongArch platforms.
* x86 backend
+ Add support for new AMD CPUID leaf 0x80000026 for better detection
of Core Complex and Die on Zen4 processors.
+ Improve Zhaoxin CPU topology detection.
* Tools
+ Input locations and many command-line options (e.g. hwloc-calc -I -N -H,
lstopo --only) now accept filters such as "NUMA[HBM]" so that only
objects are that type and subtype are considered.
- NUMA[tier=1] is also accepted for selecting NUMA nodes depending
on their MemoryTier info attribute.
+ Add --object-output to hwloc-calc to report the type as a prefix to
object indexes, e.g. Core:2 instead of 2 in the output of -I.
+ hwloc-info --ancestor and --descendants now accepts kinds of objects
instead of single types.
- The new --first option only shows the first matching object.
+ Add --children-of-pid to hwloc-ps to show a hierarchy of processes.
Thanks to Antoine Morvan for the suggestion.
+ Add --misc-from to lstopo to add Misc objects described in a file.
- To be combined with the new hwloc-ps --lstopo-misc for a customizable
lstopo --top replacement.
* Misc
+ lstopo may now configure the layout of memory object placed above,
for instance with --children-order memory:above:vert.
+ Fix XML import from memory or stdin when using libxml2 2.12.
+ Fix installation failures when configuring with --target,
thanks to Clement Foyer for the patch.
+ Fix support for 128bit pointer architectures.
+ Remove Netloc.


Version 2.9.3
-------------
* Handle Linux glibc allocation errors in binding routines (CVE-2022-47022).
* Fix hwloc-calc when searching objects on heterogeneous memory platforms,
thanks to Antoine Morvan for the report.
* Fix hwloc_get_next_child() when there are some memory-side caches.
* Don't crash if the topology is empty because Linux cgroups are wrong.
* Improve some hwloc-bind warnings in case of command-line parsing errors.
* Many documentation improvements all over the place, including:
+ hwloc_topology_restrict() and hwloc_topology_insert_group() may reorder
children, causing the logical indexes of objects to change.


Version 2.9.2
-------------
* Don't forget L3i when defining filters for multiple levels of caches
with hwloc_topology_set_cache/icache_types_filter().
* Fix object total_memory after hwloc_topology_insert_group_object().
* Fix the (non-yet) exporting in synthetic description for complex memory
hierarchies with memory-side caches, etc.
* Fix some default size attributes when building synthetic topologies.
* Fix size units in hwloc-annotate.
* Improve bitmap reallocation error management in many functions.
* Documentation improvements:
+ Better document return values of functions.
+ Add "Error reporting" section (in hwloc.h and in the doxygen doc).
+ Add FAQ entry "What may I disable to make hwloc faster?"
+ Improve FAQ entries "Why is lstopo slow?" and
"I only need ..., why should I use hwloc?"
+ Clarify how to deal with cpukinds in hwloc-calc and hwloc-bind
manpages.


Version 2.9.1
-------------
* Don't forget to apply object type filters to "perflevel" caches detected
on recent Mac OS X releases, thanks to Michel Lesoinne for the report.
* Fix a failed assertion in hwloc_topology_restrict() when some NUMA nodes
are removed because of HWLOC_RESTRICT_FLAG_REMOVE_CPULESS but no PUs are.
Thanks to Mark Grondona for reporting the issue.
* Mark HPE Cray Slingshot NICs with subtype "Slingshot".


Version 2.9.0
-------------
* Backends
+ Expose the memory size of CXL memory devices (Type 3) on Linux.
+ The LevelZero backend now reports the "XeLinkBandwidth" distance
matrix between L0 devices (and subdevices) when available.
+ Add support for CUDA compute capability up to 9.0.
* Tools
+ lstopo now switches to console mode when its output is redirected.
Graphical window mode may be forced back with --of window.
+ hwloc-calc now accepts "numa" in -H, and I/O subtypes such as "gpu"
in -I and -N.


Version 2.8.0
-------------
* API
Expand Down Expand Up @@ -47,6 +158,14 @@ Version 2.8.0
file from the documentation.


Version 2.7.2
-------------
* Fix a crash when LevelZero devices have multiple subdevices,
e.g. on PonteVecchio GPUs, thanks to Jonathan Peyton.
* Fix a leak when importing cpukinds from XML,
thanks to Hui Zhou.


Version 2.7.1
-------------
* Workaround crashes when virtual machines report incoherent x86 CPUID
Expand Down

0 comments on commit a69973a

Please sign in to comment.