1
1

Merge pull request #1289 from hjelmn/hwloc_fix

Update hwloc to 1.11.2 + Fix /proc/mounts issue.
Этот коммит содержится в:
Nathan Hjelm 2016-01-07 16:14:55 -07:00
родитель 73ca19581e 15007b4e2b
Коммит faeca5663c
127 изменённых файлов: 868 добавлений и 455 удалений

Просмотреть файл

@ -1,172 +0,0 @@
# -*- shell-script -*-
#
# Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
# Copyright (c) 2015 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
#
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# Priority
#
AC_DEFUN([MCA_opal_hwloc_hwloc1111_PRIORITY], [90])
#
# Force this component to compile in static-only mode
#
AC_DEFUN([MCA_opal_hwloc_hwloc1111_COMPILE_MODE], [
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
$4="static"
AC_MSG_RESULT([$$4])
])
# Include hwloc m4 files
m4_include(opal/mca/hwloc/hwloc1111/hwloc/config/hwloc.m4)
m4_include(opal/mca/hwloc/hwloc1111/hwloc/config/hwloc_pkg.m4)
m4_include(opal/mca/hwloc/hwloc1111/hwloc/config/hwloc_check_attributes.m4)
m4_include(opal/mca/hwloc/hwloc1111/hwloc/config/hwloc_check_visibility.m4)
m4_include(opal/mca/hwloc/hwloc1111/hwloc/config/hwloc_check_vendor.m4)
m4_include(opal/mca/hwloc/hwloc1111/hwloc/config/hwloc_components.m4)
# MCA_hwloc_hwloc1111_POST_CONFIG()
# ---------------------------------
AC_DEFUN([MCA_opal_hwloc_hwloc1111_POST_CONFIG],[
OPAL_VAR_SCOPE_PUSH([opal_hwloc_hwloc1111_basedir])
# If we won, then do all the rest of the setup
AS_IF([test "$1" = "1" && test "$opal_hwloc_hwloc1111_support" = "yes"],
[
# Set this variable so that the framework m4 knows what
# file to include in opal/mca/hwloc/hwloc.h
opal_hwloc_hwloc1111_basedir=opal/mca/hwloc/hwloc1111
opal_hwloc_base_include="$opal_hwloc_hwloc1111_basedir/hwloc1111.h"
# Add some stuff to CPPFLAGS so that the rest of the source
# tree can be built
file=$opal_hwloc_hwloc1111_basedir/hwloc
CPPFLAGS="$CPPFLAGS -I$OPAL_TOP_SRCDIR/$file/include"
AS_IF([test "$OPAL_TOP_BUILDDIR" != "$OPAL_TOP_SRCDIR"],
[CPPFLAGS="$CPPFLAGS -I$OPAL_TOP_BUILDDIR/$file/include"])
unset file
])
OPAL_VAR_SCOPE_POP
# This must be run unconditionally
HWLOC_DO_AM_CONDITIONALS
])dnl
# MCA_hwloc_hwloc1111_CONFIG([action-if-found], [action-if-not-found])
# --------------------------------------------------------------------
AC_DEFUN([MCA_opal_hwloc_hwloc1111_CONFIG],[
# Hwloc needs to know if we have Verbs support
AC_REQUIRE([OPAL_CHECK_VERBS_DIR])
AC_CONFIG_FILES([opal/mca/hwloc/hwloc1111/Makefile])
OPAL_VAR_SCOPE_PUSH([HWLOC_VERSION opal_hwloc_hwloc1111_save_CPPFLAGS opal_hwloc_hwloc1111_save_LDFLAGS opal_hwloc_hwloc1111_save_LIBS opal_hwloc_hwloc1111_save_cairo opal_hwloc_hwloc1111_save_xml opal_hwloc_hwloc1111_basedir opal_hwloc_hwloc1111_file opal_hwloc_hwloc1111_save_cflags CPPFLAGS_save LIBS_save])
# default to this component not providing support
opal_hwloc_hwloc1111_basedir=opal/mca/hwloc/hwloc1111
opal_hwloc_hwloc1111_support=no
if test "$with_hwloc" = "internal" || test -z "$with_hwloc" || test "$with_hwloc" = "yes"; then
opal_hwloc_hwloc1111_save_CPPFLAGS=$CPPFLAGS
opal_hwloc_hwloc1111_save_LDFLAGS=$LDFLAGS
opal_hwloc_hwloc1111_save_LIBS=$LIBS
# Run the hwloc configuration - set the prefix to minimize
# the chance that someone will use the internal symbols
HWLOC_SET_SYMBOL_PREFIX([opal_hwloc1111_])
# save XML or graphical options
opal_hwloc_hwloc1111_save_cairo=$enable_cairo
opal_hwloc_hwloc1111_save_xml=$enable_xml
opal_hwloc_hwloc1111_save_static=$enable_static
opal_hwloc_hwloc1111_save_shared=$enable_shared
opal_hwloc_hwloc1111_save_plugins=$enable_plugins
# never enable hwloc's graphical option
enable_cairo=no
# never enable hwloc's plugin system
enable_plugins=no
enable_static=yes
enable_shared=no
# Override -- disable hwloc's libxml2 support, but enable the
# native hwloc XML support
enable_libxml2=no
enable_xml=yes
# hwloc checks for compiler visibility, and its needs to do
# this without "picky" flags.
opal_hwloc_hwloc1111_save_cflags=$CFLAGS
CFLAGS=$OPAL_CFLAGS_BEFORE_PICKY
HWLOC_SETUP_CORE([opal/mca/hwloc/hwloc1111/hwloc],
[AC_MSG_CHECKING([whether hwloc configure succeeded])
AC_MSG_RESULT([yes])
HWLOC_VERSION="internal v`$srcdir/$opal_hwloc_hwloc1111_basedir/hwloc/config/hwloc_get_version.sh $srcdir/$opal_hwloc_hwloc1111_basedir/hwloc/VERSION`"
# Build flags for our Makefile.am
opal_hwloc_hwloc1111_LDFLAGS='$(HWLOC_EMBEDDED_LDFLAGS)'
opal_hwloc_hwloc1111_LIBS='$(OPAL_TOP_BUILDDIR)/'"$opal_hwloc_hwloc1111_basedir"'/hwloc/src/libhwloc_embedded.la $(HWLOC_EMBEDDED_LIBS)'
opal_hwloc_hwloc1111_support=yes
AC_DEFINE_UNQUOTED([HWLOC_HWLOC1111_HWLOC_VERSION],
["$HWLOC_VERSION"],
[Version of hwloc])
# Do we have verbs support?
CPPFLAGS_save=$CPPFLAGS
AS_IF([test "$opal_want_verbs" = "yes"],
[CPPFLAGS="-I$opal_verbs_dir/include $CPPFLAGS"])
AC_CHECK_HEADERS([infiniband/verbs.h])
CPPFLAGS=$CPPFLAGS_save
],
[AC_MSG_CHECKING([whether hwloc configure succeeded])
AC_MSG_RESULT([no])
opal_hwloc_hwloc1111_support=no])
CFLAGS=$opal_hwloc_hwloc1111_save_cflags
# Restore some env variables, if necessary
AS_IF([test -n "$opal_hwloc_hwloc1111_save_cairo"],
[enable_cairo=$opal_hwloc_hwloc1111_save_cairo])
AS_IF([test -n "$opal_hwloc_hwloc1111_save_xml"],
[enable_xml=$opal_hwloc_hwloc1111_save_xml])
AS_IF([test -n "$opal_hwloc_hwloc1111_save_static"],
[enable_static=$opal_hwloc_hwloc1111_save_static])
AS_IF([test -n "$opal_hwloc_hwloc1111_save_shared"],
[enable_shared=$opal_hwloc_hwloc1111_save_shared])
AS_IF([test -n "$opal_hwloc_hwloc1111_save_plugins"],
[enable_plugins=$opal_hwloc_hwloc1111_save_shared])
CPPFLAGS=$opal_hwloc_hwloc1111_save_CPPFLAGS
LDFLAGS=$opal_hwloc_hwloc1111_save_LDFLAGS
LIBS=$opal_hwloc_hwloc1111_save_LIBS
AC_SUBST([opal_hwloc_hwloc1111_CFLAGS])
AC_SUBST([opal_hwloc_hwloc1111_CPPFLAGS])
AC_SUBST([opal_hwloc_hwloc1111_LDFLAGS])
AC_SUBST([opal_hwloc_hwloc1111_LIBS])
# Finally, add some flags to the wrapper compiler so that our
# headers can be found.
hwloc_hwloc1111_WRAPPER_EXTRA_LDFLAGS="$HWLOC_EMBEDDED_LDFLAGS"
hwloc_hwloc1111_WRAPPER_EXTRA_LIBS="$HWLOC_EMBEDDED_LIBS"
hwloc_hwloc1111_WRAPPER_EXTRA_CPPFLAGS='-I${pkgincludedir}/'"$opal_hwloc_hwloc1111_basedir/hwloc/include"
fi
# Done!
AS_IF([test "$opal_hwloc_hwloc1111_support" = "yes"],
[$1],
[$2])
OPAL_VAR_SCOPE_POP
])dnl

Просмотреть файл

@ -1,6 +1,8 @@
#
# Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2014-2015 Intel, Inc. All right reserved.
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -25,16 +27,16 @@ EXTRA_DIST = \
SUBDIRS = hwloc
# Headers and sources
headers = hwloc1111.h
sources = hwloc1111_component.c
headers = hwloc1112.h
sources = hwloc1112_component.c
# We only ever build this component statically
noinst_LTLIBRARIES = libmca_hwloc_hwloc1111.la
libmca_hwloc_hwloc1111_la_SOURCES = $(headers) $(sources)
nodist_libmca_hwloc_hwloc1111_la_SOURCES = $(nodist_headers)
libmca_hwloc_hwloc1111_la_LDFLAGS = -module -avoid-version $(opal_hwloc_hwloc1111_LDFLAGS)
libmca_hwloc_hwloc1111_la_LIBADD = $(opal_hwloc_hwloc1111_LIBS)
libmca_hwloc_hwloc1111_la_DEPENDENCIES = \
noinst_LTLIBRARIES = libmca_hwloc_hwloc1112.la
libmca_hwloc_hwloc1112_la_SOURCES = $(headers) $(sources)
nodist_libmca_hwloc_hwloc1112_la_SOURCES = $(nodist_headers)
libmca_hwloc_hwloc1112_la_LDFLAGS = -module -avoid-version $(opal_hwloc_hwloc1112_LDFLAGS)
libmca_hwloc_hwloc1112_la_LIBADD = $(opal_hwloc_hwloc1112_LIBS)
libmca_hwloc_hwloc1112_la_DEPENDENCIES = \
$(HWLOC_top_builddir)/src/libhwloc_embedded.la
# Since the rest of the code base includes the underlying hwloc.h, we

174
opal/mca/hwloc/hwloc1112/configure.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,174 @@
# -*- shell-script -*-
#
# Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
# Copyright (c) 2015 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
# reserved.
#
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# Priority
#
AC_DEFUN([MCA_opal_hwloc_hwloc1112_PRIORITY], [90])
#
# Force this component to compile in static-only mode
#
AC_DEFUN([MCA_opal_hwloc_hwloc1112_COMPILE_MODE], [
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
$4="static"
AC_MSG_RESULT([$$4])
])
# Include hwloc m4 files
m4_include(opal/mca/hwloc/hwloc1112/hwloc/config/hwloc.m4)
m4_include(opal/mca/hwloc/hwloc1112/hwloc/config/hwloc_pkg.m4)
m4_include(opal/mca/hwloc/hwloc1112/hwloc/config/hwloc_check_attributes.m4)
m4_include(opal/mca/hwloc/hwloc1112/hwloc/config/hwloc_check_visibility.m4)
m4_include(opal/mca/hwloc/hwloc1112/hwloc/config/hwloc_check_vendor.m4)
m4_include(opal/mca/hwloc/hwloc1112/hwloc/config/hwloc_components.m4)
# MCA_hwloc_hwloc1112_POST_CONFIG()
# ---------------------------------
AC_DEFUN([MCA_opal_hwloc_hwloc1112_POST_CONFIG],[
OPAL_VAR_SCOPE_PUSH([opal_hwloc_hwloc1112_basedir])
# If we won, then do all the rest of the setup
AS_IF([test "$1" = "1" && test "$opal_hwloc_hwloc1112_support" = "yes"],
[
# Set this variable so that the framework m4 knows what
# file to include in opal/mca/hwloc/hwloc.h
opal_hwloc_hwloc1112_basedir=opal/mca/hwloc/hwloc1112
opal_hwloc_base_include="$opal_hwloc_hwloc1112_basedir/hwloc1112.h"
# Add some stuff to CPPFLAGS so that the rest of the source
# tree can be built
file=$opal_hwloc_hwloc1112_basedir/hwloc
CPPFLAGS="$CPPFLAGS -I$OPAL_TOP_SRCDIR/$file/include"
AS_IF([test "$OPAL_TOP_BUILDDIR" != "$OPAL_TOP_SRCDIR"],
[CPPFLAGS="$CPPFLAGS -I$OPAL_TOP_BUILDDIR/$file/include"])
unset file
])
OPAL_VAR_SCOPE_POP
# This must be run unconditionally
HWLOC_DO_AM_CONDITIONALS
])dnl
# MCA_hwloc_hwloc1112_CONFIG([action-if-found], [action-if-not-found])
# --------------------------------------------------------------------
AC_DEFUN([MCA_opal_hwloc_hwloc1112_CONFIG],[
# Hwloc needs to know if we have Verbs support
AC_REQUIRE([OPAL_CHECK_VERBS_DIR])
AC_CONFIG_FILES([opal/mca/hwloc/hwloc1112/Makefile])
OPAL_VAR_SCOPE_PUSH([HWLOC_VERSION opal_hwloc_hwloc1112_save_CPPFLAGS opal_hwloc_hwloc1112_save_LDFLAGS opal_hwloc_hwloc1112_save_LIBS opal_hwloc_hwloc1112_save_cairo opal_hwloc_hwloc1112_save_xml opal_hwloc_hwloc1112_basedir opal_hwloc_hwloc1112_file opal_hwloc_hwloc1112_save_cflags CPPFLAGS_save LIBS_save])
# default to this component not providing support
opal_hwloc_hwloc1112_basedir=opal/mca/hwloc/hwloc1112
opal_hwloc_hwloc1112_support=no
if test "$with_hwloc" = "internal" || test -z "$with_hwloc" || test "$with_hwloc" = "yes"; then
opal_hwloc_hwloc1112_save_CPPFLAGS=$CPPFLAGS
opal_hwloc_hwloc1112_save_LDFLAGS=$LDFLAGS
opal_hwloc_hwloc1112_save_LIBS=$LIBS
# Run the hwloc configuration - set the prefix to minimize
# the chance that someone will use the internal symbols
HWLOC_SET_SYMBOL_PREFIX([opal_hwloc1112_])
# save XML or graphical options
opal_hwloc_hwloc1112_save_cairo=$enable_cairo
opal_hwloc_hwloc1112_save_xml=$enable_xml
opal_hwloc_hwloc1112_save_static=$enable_static
opal_hwloc_hwloc1112_save_shared=$enable_shared
opal_hwloc_hwloc1112_save_plugins=$enable_plugins
# never enable hwloc's graphical option
enable_cairo=no
# never enable hwloc's plugin system
enable_plugins=no
enable_static=yes
enable_shared=no
# Override -- disable hwloc's libxml2 support, but enable the
# native hwloc XML support
enable_libxml2=no
enable_xml=yes
# hwloc checks for compiler visibility, and its needs to do
# this without "picky" flags.
opal_hwloc_hwloc1112_save_cflags=$CFLAGS
CFLAGS=$OPAL_CFLAGS_BEFORE_PICKY
HWLOC_SETUP_CORE([opal/mca/hwloc/hwloc1112/hwloc],
[AC_MSG_CHECKING([whether hwloc configure succeeded])
AC_MSG_RESULT([yes])
HWLOC_VERSION="internal v`$srcdir/$opal_hwloc_hwloc1112_basedir/hwloc/config/hwloc_get_version.sh $srcdir/$opal_hwloc_hwloc1112_basedir/hwloc/VERSION`"
# Build flags for our Makefile.am
opal_hwloc_hwloc1112_LDFLAGS='$(HWLOC_EMBEDDED_LDFLAGS)'
opal_hwloc_hwloc1112_LIBS='$(OPAL_TOP_BUILDDIR)/'"$opal_hwloc_hwloc1112_basedir"'/hwloc/src/libhwloc_embedded.la $(HWLOC_EMBEDDED_LIBS)'
opal_hwloc_hwloc1112_support=yes
AC_DEFINE_UNQUOTED([HWLOC_HWLOC1112_HWLOC_VERSION],
["$HWLOC_VERSION"],
[Version of hwloc])
# Do we have verbs support?
CPPFLAGS_save=$CPPFLAGS
AS_IF([test "$opal_want_verbs" = "yes"],
[CPPFLAGS="-I$opal_verbs_dir/include $CPPFLAGS"])
AC_CHECK_HEADERS([infiniband/verbs.h])
CPPFLAGS=$CPPFLAGS_save
],
[AC_MSG_CHECKING([whether hwloc configure succeeded])
AC_MSG_RESULT([no])
opal_hwloc_hwloc1112_support=no])
CFLAGS=$opal_hwloc_hwloc1112_save_cflags
# Restore some env variables, if necessary
AS_IF([test -n "$opal_hwloc_hwloc1112_save_cairo"],
[enable_cairo=$opal_hwloc_hwloc1112_save_cairo])
AS_IF([test -n "$opal_hwloc_hwloc1112_save_xml"],
[enable_xml=$opal_hwloc_hwloc1112_save_xml])
AS_IF([test -n "$opal_hwloc_hwloc1112_save_static"],
[enable_static=$opal_hwloc_hwloc1112_save_static])
AS_IF([test -n "$opal_hwloc_hwloc1112_save_shared"],
[enable_shared=$opal_hwloc_hwloc1112_save_shared])
AS_IF([test -n "$opal_hwloc_hwloc1112_save_plugins"],
[enable_plugins=$opal_hwloc_hwloc1112_save_shared])
CPPFLAGS=$opal_hwloc_hwloc1112_save_CPPFLAGS
LDFLAGS=$opal_hwloc_hwloc1112_save_LDFLAGS
LIBS=$opal_hwloc_hwloc1112_save_LIBS
AC_SUBST([opal_hwloc_hwloc1112_CFLAGS])
AC_SUBST([opal_hwloc_hwloc1112_CPPFLAGS])
AC_SUBST([opal_hwloc_hwloc1112_LDFLAGS])
AC_SUBST([opal_hwloc_hwloc1112_LIBS])
# Finally, add some flags to the wrapper compiler so that our
# headers can be found.
hwloc_hwloc1112_WRAPPER_EXTRA_LDFLAGS="$HWLOC_EMBEDDED_LDFLAGS"
hwloc_hwloc1112_WRAPPER_EXTRA_LIBS="$HWLOC_EMBEDDED_LIBS"
hwloc_hwloc1112_WRAPPER_EXTRA_CPPFLAGS='-I${pkgincludedir}/'"$opal_hwloc_hwloc1112_basedir/hwloc/include"
fi
# Done!
AS_IF([test "$opal_hwloc_hwloc1112_support" = "yes"],
[$1],
[$2])
OPAL_VAR_SCOPE_POP
])dnl

Просмотреть файл

@ -1,5 +1,5 @@
Copyright © 2009 CNRS
Copyright © 2009-2015 Inria. All rights reserved.
Copyright © 2009-2016 Inria. All rights reserved.
Copyright © 2009-2013 Université Bordeaux
Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
@ -17,6 +17,54 @@ bug fixes (and other actions) for each version of hwloc since version
in v0.9.1).
Version 1.11.3
--------------
* Fix /proc/mounts parsing on Linux by using mntent.h.
Thanks to Nathan Hjelm for reporting the issue.
Version 1.11.2
--------------
* Improve support for Intel Knights Landing Xeon Phi on Linux:
+ Group local NUMA nodes of normal memory (DDR) and high-bandwidth memory
(MCDRAM) together through "Cluster" groups so that the local MCDRAM is
easy to find.
- See "How do I find the local MCDRAM NUMA node on Intel Knights
Landing Xeon Phi?" in the documentation.
- For uniformity across all KNL configurations, always have a NUMA node
object even if the host is UMA.
+ Fix the detection of the memory-side cache:
- Add the hwloc-dump-hwdata superuser utility to dump SMBIOS information
into /var/run/hwloc/ as root during boot, and load this dumped
information from the hwloc library at runtime.
- See "Why do I need hwloc-dump-hwdata for caches on Intel Knights
Landing Xeon Phi?" in the documentation.
Thanks to Grzegorz Andrejczuk for the patches and for the help.
* The x86 and linux backends may now be combined for discovering CPUs
through x86 CPUID and memory from the Linux kernel.
This is useful for working around buggy CPU information reported by Linux
(for instance the AMD Bulldozer/Piledriver bug below).
Combination is enabled by passing HWLOC_COMPONENTS=x86 in the environment.
* Fix L3 cache sharing on AMD Opteron 63xx (Piledriver) and 62xx (Bulldozer)
in the x86 backend. Thanks to many users who helped.
* Fix the overzealous L3 cache sharing fix added to the x86 backend in 1.11.1
for AMD Opteron 61xx (Magny-Cours) processors.
* The x86 backend may now add the info attribute Inclusive=0 or 1 to caches
it discovers, or to caches discovered by other backends earlier.
Thanks to Guillaume Beauchamp for the patch.
* Fix the management on alloc_membind() allocation failures on AIX, HP-UX
and OSF/Tru64.
* Fix spurious failures to load with ENOMEM on AIX in case of Misc objects
below PUs.
* lstopo improvements in X11 and Windows graphical mode:
+ Add + - f 1 shortcuts to manually zoom-in, zoom-out, reset the scale,
or fit the entire window.
+ Display all keyboard shortcuts in the console.
* Debug messages may be disabled at runtime by passing HWLOC_DEBUG_VERBOSE=0
in the environment when --enable-debug was passed to configure.
* Add a FAQ entry "What are these Group objects in my topology?".
Version 1.11.1
--------------
* Detection fixes

Просмотреть файл

@ -25,9 +25,9 @@ using PLPA has already switched to hwloc.
hwloc supports the following operating systems:
* Linux (including old kernels not having sysfs topology information, with
knowledge of cpusets, offline CPUs, ScaleMP vSMP, NumaScale NumaConnect,
and Kerrighed support) on all supported hardware, including Intel Xeon Phi
(either standalone or as a coprocessor).
knowledge of cpusets, offline CPUs, ScaleMP vSMP and Kerrighed support) on
all supported hardware, including Intel Xeon Phi (KNL and KNC, either
standalone or as a coprocessor) and NumaScale NumaConnect.
* Solaris
* AIX
* Darwin / OS X

Просмотреть файл

@ -0,0 +1,3 @@
Cherry-picked commits after 1.11.2:
open-mpi/hwloc@d2d07b9a2268699e13e1644b4f2ef7a53ef7396c

Просмотреть файл

@ -7,7 +7,7 @@
major=1
minor=11
release=1
release=2
# greek is used for alpha or beta release tags. If it is non-empty,
# it will be appended to the version number. It does not have to be
@ -20,7 +20,7 @@ greek=
# The date when this release was created
date="Oct 15, 2015"
date="Dec 17, 2015"
# If snapshot=1, then use the value from snapshot_version as the
# entire hwloc version (i.e., ignore major, minor, release, and
@ -39,4 +39,4 @@ snapshot_version=${major}.${minor}.${release}${greek}-git
# 2. Version numbers are described in the Libtool current:revision:age
# format.
libhwloc_so_version=11:7:6
libhwloc_so_version=11:8:6

Просмотреть файл

@ -1213,6 +1213,7 @@ AC_DEFUN([HWLOC_DO_AM_CONDITIONALS],[
AM_CONDITIONAL([HWLOC_HAVE_WINDOWS], [test "x$hwloc_windows" = "xyes"])
AM_CONDITIONAL([HWLOC_HAVE_MINGW32], [test "x$target_os" = "xmingw32"])
AM_CONDITIONAL([HWLOC_HAVE_X86], [test "x$hwloc_x86_32" = "xyes" -o "x$hwloc_x86_64" = "xyes"])
AM_CONDITIONAL([HWLOC_HAVE_X86_32], [test "x$hwloc_x86_32" = "xyes"])
AM_CONDITIONAL([HWLOC_HAVE_X86_64], [test "x$hwloc_x86_64" = "xyes"])
AM_CONDITIONAL([HWLOC_HAVE_X86_CPUID], [test "x$hwloc_have_x86_cpuid" = "xyes"])

Просмотреть файл

@ -211,6 +211,7 @@ typedef enum {
* expose their arbitrary processors aggregation this
* way. And hwloc may insert such objects to group
* NUMA nodes according to their distances.
* See also \ref faq_groups.
*
* These objects are ignored when they do not bring
* any structure.

Просмотреть файл

@ -1,6 +1,6 @@
/*
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
* Copyright © 2010-2014 Inria. All rights reserved.
* Copyright © 2010-2015 Inria. All rights reserved.
* See COPYING in top-level directory.
*/
@ -510,6 +510,7 @@ extern "C" {
/* private/debug.h */
#define hwloc_debug_enabled HWLOC_NAME(debug_enabled)
#define hwloc_debug HWLOC_NAME(debug)
/* private/misc.h */

Просмотреть файл

@ -1,6 +1,6 @@
/*
* Copyright © 2009 CNRS
* Copyright © 2009-2012 Inria. All rights reserved.
* Copyright © 2009-2015 Inria. All rights reserved.
* Copyright © 2009, 2011 Université Bordeaux
* Copyright © 2011 Cisco Systems, Inc. All rights reserved.
* See COPYING in top-level directory.
@ -18,36 +18,57 @@
#include <stdio.h>
#endif
#ifdef HWLOC_DEBUG
static __hwloc_inline int hwloc_debug_enabled(void)
{
static int checked = 0;
static int enabled = 1;
if (!checked) {
const char *env = getenv("HWLOC_DEBUG_VERBOSE");
if (env)
enabled = atoi(env);
if (enabled)
fprintf(stderr, "hwloc verbose debug enabled, may be disabled with HWLOC_DEBUG_VERBOSE=0 in the environment.\n");
checked = 1;
}
return enabled;
}
#endif
static __hwloc_inline void hwloc_debug(const char *s __hwloc_attribute_unused, ...)
{
#ifdef HWLOC_DEBUG
if (hwloc_debug_enabled()) {
va_list ap;
va_start(ap, s);
vfprintf(stderr, s, ap);
va_end(ap);
}
#endif
}
#ifdef HWLOC_DEBUG
#define hwloc_debug_bitmap(fmt, bitmap) do { \
if (hwloc_debug_enabled()) { \
char *s; \
hwloc_bitmap_asprintf(&s, bitmap); \
fprintf(stderr, fmt, s); \
free(s); \
} while (0)
} } while (0)
#define hwloc_debug_1arg_bitmap(fmt, arg1, bitmap) do { \
if (hwloc_debug_enabled()) { \
char *s; \
hwloc_bitmap_asprintf(&s, bitmap); \
fprintf(stderr, fmt, arg1, s); \
free(s); \
} while (0)
} } while (0)
#define hwloc_debug_2args_bitmap(fmt, arg1, arg2, bitmap) do { \
if (hwloc_debug_enabled()) { \
char *s; \
hwloc_bitmap_asprintf(&s, bitmap); \
fprintf(stderr, fmt, arg1, arg2, s); \
free(s); \
} while (0)
} } while (0)
#else
#define hwloc_debug_bitmap(s, bitmap) do { } while(0)
#define hwloc_debug_1arg_bitmap(s, arg1, bitmap) do { } while(0)

Просмотреть файл

@ -74,9 +74,13 @@ hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t set, int flags
if (topology->binding_hooks.set_thisthread_cpubind)
return topology->binding_hooks.set_thisthread_cpubind(topology, set, flags);
} else {
if (topology->binding_hooks.set_thisproc_cpubind)
return topology->binding_hooks.set_thisproc_cpubind(topology, set, flags);
else if (topology->binding_hooks.set_thisthread_cpubind)
if (topology->binding_hooks.set_thisproc_cpubind) {
int err = topology->binding_hooks.set_thisproc_cpubind(topology, set, flags);
if (err >= 0 || errno != ENOSYS)
return err;
/* ENOSYS, fallback */
}
if (topology->binding_hooks.set_thisthread_cpubind)
return topology->binding_hooks.set_thisthread_cpubind(topology, set, flags);
}
@ -94,9 +98,13 @@ hwloc_get_cpubind(hwloc_topology_t topology, hwloc_bitmap_t set, int flags)
if (topology->binding_hooks.get_thisthread_cpubind)
return topology->binding_hooks.get_thisthread_cpubind(topology, set, flags);
} else {
if (topology->binding_hooks.get_thisproc_cpubind)
return topology->binding_hooks.get_thisproc_cpubind(topology, set, flags);
else if (topology->binding_hooks.get_thisthread_cpubind)
if (topology->binding_hooks.get_thisproc_cpubind) {
int err = topology->binding_hooks.get_thisproc_cpubind(topology, set, flags);
if (err >= 0 || errno != ENOSYS)
return err;
/* ENOSYS, fallback */
}
if (topology->binding_hooks.get_thisthread_cpubind)
return topology->binding_hooks.get_thisthread_cpubind(topology, set, flags);
}
@ -164,9 +172,13 @@ hwloc_get_last_cpu_location(hwloc_topology_t topology, hwloc_bitmap_t set, int f
if (topology->binding_hooks.get_thisthread_last_cpu_location)
return topology->binding_hooks.get_thisthread_last_cpu_location(topology, set, flags);
} else {
if (topology->binding_hooks.get_thisproc_last_cpu_location)
return topology->binding_hooks.get_thisproc_last_cpu_location(topology, set, flags);
else if (topology->binding_hooks.get_thisthread_last_cpu_location)
if (topology->binding_hooks.get_thisproc_last_cpu_location) {
int err = topology->binding_hooks.get_thisproc_last_cpu_location(topology, set, flags);
if (err >= 0 || errno != ENOSYS)
return err;
/* ENOSYS, fallback */
}
if (topology->binding_hooks.get_thisthread_last_cpu_location)
return topology->binding_hooks.get_thisthread_last_cpu_location(topology, set, flags);
}
@ -272,9 +284,13 @@ hwloc_set_membind_nodeset(hwloc_topology_t topology, hwloc_const_nodeset_t nodes
if (topology->binding_hooks.set_thisthread_membind)
return topology->binding_hooks.set_thisthread_membind(topology, nodeset, policy, flags);
} else {
if (topology->binding_hooks.set_thisproc_membind)
return topology->binding_hooks.set_thisproc_membind(topology, nodeset, policy, flags);
else if (topology->binding_hooks.set_thisthread_membind)
if (topology->binding_hooks.set_thisproc_membind) {
int err = topology->binding_hooks.set_thisproc_membind(topology, nodeset, policy, flags);
if (err >= 0 || errno != ENOSYS)
return err;
/* ENOSYS, fallback */
}
if (topology->binding_hooks.set_thisthread_membind)
return topology->binding_hooks.set_thisthread_membind(topology, nodeset, policy, flags);
}
@ -307,9 +323,13 @@ hwloc_get_membind_nodeset(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hw
if (topology->binding_hooks.get_thisthread_membind)
return topology->binding_hooks.get_thisthread_membind(topology, nodeset, policy, flags);
} else {
if (topology->binding_hooks.get_thisproc_membind)
return topology->binding_hooks.get_thisproc_membind(topology, nodeset, policy, flags);
else if (topology->binding_hooks.get_thisthread_membind)
if (topology->binding_hooks.get_thisproc_membind) {
int err = topology->binding_hooks.get_thisproc_membind(topology, nodeset, policy, flags);
if (err >= 0 || errno != ENOSYS)
return err;
/* ENOSYS, fallback */
}
if (topology->binding_hooks.get_thisthread_membind)
return topology->binding_hooks.get_thisthread_membind(topology, nodeset, policy, flags);
}

Просмотреть файл

@ -585,7 +585,7 @@ hwloc_aix_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_nodes
ret = ra_mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0, R_RSET, rsid, aix_policy);
rs_free(rsid.at_rset);
return ret;
return ret == (void*)-1 ? NULL : ret;
}
#endif /* P_DEFAULT */

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше