[mpich-commits] r10817 - in mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc: . config doc include/hwloc include/private src utils
balaji at mcs.anl.gov
balaji at mcs.anl.gov
Thu Jan 3 12:17:37 CST 2013
Author: balaji
Date: 2013-01-03 12:17:36 -0600 (Thu, 03 Jan 2013)
New Revision: 10817
Modified:
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/Makefile.am
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/NEWS
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/VERSION
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/autogen.sh
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/config/hwloc.m4
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/configure.ac
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/doc/hwloc.doxy
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/hwloc/rename.h
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/private/private.h
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/Makefile.am
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/components.c
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-x86.c
mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/utils/hwloc.7in
Log:
Upgrade to hwloc-1.6.1rc1.
No reviewer.
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/Makefile.am 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/Makefile.am 2013-01-03 18:17:36 UTC (rev 10817)
@@ -9,10 +9,10 @@
SUBDIRS = src include
if HWLOC_BUILD_STANDALONE
-# SUBDIRS += utils tests
+SUBDIRS += utils tests
# 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
-# SUBDIRS += doc
+SUBDIRS += doc
endif
# Do not let automake automatically add the non-standalone dirs to the
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/NEWS
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/NEWS 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/NEWS 2013-01-03 18:17:36 UTC (rev 10817)
@@ -16,6 +16,15 @@
0.9 (as initially released as "libtopology", then re-branded to "hwloc"
in v0.9.1).
+
+Version 1.6.1
+-------------
+* Fix some crash or buggy detection in the x86 backend when Linux
+ cgroups/cpusets restrict the available CPUs.
+* Add some documentation about existing plugins/components, package
+ dependencies, and I/O devices specification on the command-line.
+
+
Version 1.6.0
-------------
* Major changes
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/VERSION
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/VERSION 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/VERSION 2013-01-03 18:17:36 UTC (rev 10817)
@@ -7,7 +7,7 @@
major=1
minor=6
-release=0
+release=1
# 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
@@ -16,7 +16,7 @@
# requirement is that it must be entirely printable ASCII characters
# and have no white space.
-greek=rc3
+greek=rc1
# If want_repo_rev=1, then the SVN r number will be included in the overall
# hwloc version number in some form.
@@ -58,4 +58,4 @@
# 2. Version numbers are described in the Libtool current:revision:age
# format.
-libhwloc_so_version=7:0:2
+libhwloc_so_version=7:1:2
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/autogen.sh
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/autogen.sh 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/autogen.sh 2013-01-03 18:17:36 UTC (rev 10817)
@@ -1,2 +1,2 @@
:
-autoreconf ${autoreconf_args:"-ivf"}
+autoreconf -ivf
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/config/hwloc.m4
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/config/hwloc.m4 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/config/hwloc.m4 2013-01-03 18:17:36 UTC (rev 10817)
@@ -573,16 +573,6 @@
AC_CHECK_HEADERS([malloc.h])
AC_CHECK_FUNCS([getpagesize memalign posix_memalign])
- # when autoheader is run, it doesn't know about
- # PAC_FUNC_NEEDS_DECL, so it doesn't generate an appropriate line
- # in config.h.in. We need to fool it with a dummy AC_DEFINE().
- if false ; then
- AC_DEFINE([NEEDS_GETPAGESIZE_DECL], 1, [Define to 1 if getpagesize needs a declaration])
- fi
- if test $ac_cv_func_getpagesize = "yes" ; then
- PAC_FUNC_NEEDS_DECL([#include <unistd.h>],getpagesize)
- fi
-
AC_CHECK_HEADERS([sys/utsname.h])
AC_CHECK_FUNCS([uname])
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/configure.ac
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/configure.ac 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/configure.ac 2013-01-03 18:17:36 UTC (rev 10817)
@@ -176,19 +176,6 @@
#CPPFLAGS="$CPPFLAGS -I$HWLOC_top_builddir"
AC_CONFIG_COMMANDS_PRE([LT_CONFIG_H=`expr "$LT_CONFIG_H" : '.*/\(.*\)'`])
-## Enable creation of libtool-style versioning or no versioning
-AC_ARG_ENABLE(versioning,
- [AC_HELP_STRING([--enable-versioning],[Enable library versioning])],,
- [enable_versioning=yes])
-
-if test "$enable_versioning" = "yes" ; then
- libhwloc_so_versionflags="-version-info \$(libhwloc_so_version)"
-else
- libhwloc_so_versionflags="-avoid-version"
-fi
-export libhwloc_so_versionflags
-AC_SUBST(libhwloc_so_versionflags)
-
# Party on
AC_OUTPUT
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/doc/hwloc.doxy
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/doc/hwloc.doxy 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/doc/hwloc.doxy 2013-01-03 18:17:36 UTC (rev 10817)
@@ -139,17 +139,26 @@
The hwloc command-line tool "lstopo" produces human-readable topology
maps, as mentioned above. It can also export maps to the "fig" file
format. Support for PDF, Postscript, and PNG exporting is provided if
-the "Cairo" development package can be found in "lstopo" when hwloc
+the "Cairo" development package (usually <tt>cairo-devel</tt> or
+<tt>libcairo2-dev</tt>) can be found in "lstopo" when hwloc
is configured and build.
The hwloc core may also benefit from the following development packages:
<ul>
-<li>pciutils (libpci) for I/O discovery.</li>
-<li>libnuma for memory binding and migration support on Linux.</li>
+<li>pciutils (libpci) for I/O discovery.
+ The relevant development package is usually <tt>pciutils-devel</tt>
+ or <tt>libpci-dev</tt>.
+</li>
+<li>libnuma for memory binding and migration support on Linux
+ (<tt>numactl-devel</tt> or <tt>libnuma-dev</tt> package).
+</li>
<li>libxml2 for full XML import/export support (otherwise, the
internal minimalistic parser will only be able to import
XML files that were exported by the same hwloc release).
- See \ref xml for details.</li>
+ See \ref xml for details.
+ The relevant development package is usually <tt>libxml2-devel</tt>
+ or <tt>libxml2-dev</tt>.
+</li>
</ul>
libpci and libxml2 support may be statically built inside the main
hwloc library, or as separate dynamically-loaded plugins
@@ -756,6 +765,8 @@
hierarchical topology map of the current system. The output may be
graphical or textual, and can also be exported to numerous file
formats such as PDF, PNG, XML, and others.
+Advanced graphical outputs require the "Cairo" development package
+(usually <tt>cairo-devel</tt> or <tt>libcairo2-dev</tt>).
lstopo and lstopo-no-graphics accept the same command-line options.
However graphical outputs are only available in lstopo.
@@ -1113,7 +1124,8 @@
to hwloc_topology_set_flags() before loading the topology.
Note that I/O discovery requires significant help from the operating system.
-The pciutils library is needed to detect PCI devices and bridges,
+The pciutils library (the development package is usually <tt>pciutils-devel</tt>
+or <tt>libpci-dev</tt>) is needed to detect PCI devices and bridges,
and the actual locality of these devices is only currently detected
on Linux. Also, some operating systems require privileges for probing PCI
devices, see \ref faq_privileged for details.
@@ -1195,9 +1207,16 @@
hwloc-calc and hwloc-bind may manipulate I/O devices specified
by PCI bus ID or by OS device name.
-For instance, <tt>pci=0000:02:03.0</tt> (respectively <tt>os=eth0</tt>)
-is replaced by the set of CPUs that are close to this PCI device
-(respectively software device).
+<ul>
+<li>
+ <tt>pci=0000:02:03.0</tt> is replaced by the set
+ of CPUs that are close to the PCI device whose bus ID is given.
+</li>
+<li>
+ <tt>os=eth0</tt> is replaced by CPUs that are close to the I/O
+ device whose software handle is called <tt>eth0</tt>.
+</li>
+</ul>
This enables easy binding of I/O-intensive applications near the
device they use.
@@ -1317,7 +1336,7 @@
that its cpuset or nodeset pointer is not NULL.
Then, one should check whether the object is indeed local.
-To find out which machine a given object correspond too, one may look
+To find out which machine a given object corresponds to, one may look
at the info attributes of the parent Machine object. The <tt>HostName</tt>
info is usually available in Machine objects, it may be retrieved with the
following code:
@@ -1544,7 +1563,8 @@
files. It features full XML support, for instance when those files
have to be manipulated by non-hwloc software (e.g. a XSLT parser).
The libxml2 backend is enabled by default if libxml2 development
-headers are available.
+headers are available (the relevant development package is usually
+<tt>libxml2-devel</tt> or <tt>libxml2-dev</tt>).
If libxml2 is not available at configure time,
or if <tt>--disable-libxml2</tt> is passed, hwloc falls back to a
@@ -1972,8 +1992,68 @@
care of the actual topology discovery.
+\section plugins_list Existing components and plugins
+All components distributed within hwloc are listed below.
+The list of actually available components may be listed
+at running with the <tt>HWLOC_COMPONENTS_VERBOSE</tt>
+environment variable (see \ref envvar).
+<dl>
+<dt>aix, darwin, freebsd, hpux, linux, netbsd, osf, solaris, windows</dt>
+<dd>
+ Each officially supported operating system has its own native component,
+ which is statically built when supported, and which is used by default.
+</dd>
+<dt>x86</dt>
+<dd>
+ The x86 architecture (either 32 or 64 bits) has its own component
+ that may complete or replace the previously-found CPU information.
+ It is statically built when supported.
+</dd>
+<dt>no_os</dt>
+<dd>
+ A basic component that just tries to detect the number of processing
+ units in the system. It mostly serves on operating systems that are
+ not natively supported.
+ It is always statically built.
+</dd>
+<dt>libpci</dt>
+<dd>
+ PCI object discovery uses the external pciutils library (aka libpci),
+ see \ref iodevices.
+ <b>It may be built as a plugin</b>.
+</dd>
+<dt>synthetic</dt>
+<dd>
+ Synthetic topology support (see \ref synthetic) is always built statically.
+</dd>
+<dt>custom</dt>
+<dd>
+ Custom topology support (see \ref multinode) is always built statically.
+</dd>
+<dt>xml</dt>
+<dd>
+ XML topology import (see \ref xml) is always built statically.
+ It internally uses one of the XML backends (see \ref xml_backends).
+ <ul>
+ <li><b>xml_nolibxml</b> is a basic and hwloc-specific XML import/export.
+ It is always statically built.
+ </li>
+ <li><b>xml_libxml</b> relies on the external libxml2 library for
+ provinding a feature-complete XML import/export.
+ <b>It may be built as a plugin</b>.
+ </li>
+</dd>
+<dt>fake</dt>
+<dd>
+ A dummy plugin that does nothing but is used for debugging plugin support.
+</dd>
+</dl>
+
+
+
+
\page embed Embedding hwloc in Other Software
It can be desirable to include hwloc in a larger software package (be
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/hwloc/rename.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/hwloc/rename.h 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/hwloc/rename.h 2013-01-03 18:17:36 UTC (rev 10817)
@@ -553,6 +553,11 @@
#define hwloc_encode_to_base64 HWLOC_NAME(encode_to_base64)
#define hwloc_decode_from_base64 HWLOC_NAME(decode_from_base64)
+/* private/solaris-chiptype.h */
+
+#define hwloc_solaris_get_chip_type HWLOC_NAME(solaris_get_chip_type)
+#define hwloc_solaris_get_chip_model HWLOC_NAME(solaris_get_chip_model)
+
#endif /* HWLOC_SYM_TRANSFORM */
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/private/private.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/private/private.h 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/private/private.h 2013-01-03 18:17:36 UTC (rev 10817)
@@ -29,10 +29,6 @@
#endif
#include <string.h>
-#if defined(HAVE_GETPAGESIZE) && defined(NEEDS_GETPAGESIZE_DECL)
-int getpagesize(void);
-#endif
-
#ifdef HWLOC_HAVE_ATTRIBUTE_FORMAT
# if HWLOC_HAVE_ATTRIBUTE_FORMAT
# define __hwloc_attribute_format(type, str, arg) __attribute__((__format__(type, str, arg)))
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/Makefile.am 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/Makefile.am 2013-01-03 18:17:36 UTC (rev 10817)
@@ -136,7 +136,7 @@
# Installable library
libhwloc_la_SOURCES = $(sources)
-libhwloc_la_LDFLAGS = $(ldflags) $(libhwloc_so_versionflags) $(HWLOC_LIBS)
+libhwloc_la_LDFLAGS = $(ldflags) -version-info $(libhwloc_so_version) $(HWLOC_LIBS)
if HWLOC_HAVE_PLUGINS
AM_CPPFLAGS += $(LTDLINCL)
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/components.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/components.c 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/components.c 2013-01-03 18:17:36 UTC (rev 10817)
@@ -355,7 +355,7 @@
int err;
if ((*excludes) & comp->type) {
- if (hwloc_components_verbose)
+ if (hwloc_components_verbose || verbose_errors)
fprintf(stderr, "Excluding %s component `%s', conflicts with excludes 0x%x\n",
hwloc_disc_component_type_string(comp->type), comp->name, *excludes);
return -1;
@@ -418,7 +418,7 @@
comp = hwloc_disc_component_find(-1, env);
if (comp) {
- hwloc_disc_component_try_enable(topology, comp, arg, &excludes, 1 /* envvar forced */, 1 /* envvar forced need warnings on conflicts */);
+ hwloc_disc_component_try_enable(topology, comp, arg, &excludes, 1 /* envvar forced */, 1 /* envvar forced need warnings */);
} else {
fprintf(stderr, "Cannot find component `%s'\n", env);
}
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-x86.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-x86.c 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-x86.c 2013-01-03 18:17:36 UTC (rev 10817)
@@ -123,11 +123,7 @@
infos->max_log_proc = 1;
hwloc_debug("APIC ID 0x%02x max_log_proc %u\n", infos->apicid, infos->max_log_proc);
infos->socketid = infos->apicid / infos->max_log_proc;
- infos->nodeid = (unsigned) -1;
- infos->unitid = (unsigned) -1;
infos->logprocid = infos->apicid % infos->max_log_proc;
- infos->coreid = (unsigned) -1;
- infos->threadid = (unsigned) -1;
hwloc_debug("phys %u thread %u\n", infos->socketid, infos->logprocid);
if (highest_ext_cpuid >= 0x80000004) {
@@ -746,9 +742,16 @@
if (!hwloc_have_cpuid())
goto out;
- infos = malloc(sizeof(struct procinfo) * nbprocs);
+ infos = calloc(nbprocs, sizeof(struct procinfo));
if (NULL == infos)
goto out;
+ for (i = 0; i < nbprocs; i++) {
+ infos[i].nodeid = (unsigned) -1;
+ infos[i].socketid = (unsigned) -1;
+ infos[i].unitid = (unsigned) -1;
+ infos[i].coreid = (unsigned) -1;
+ infos[i].threadid = (unsigned) -1;
+ }
eax = 0x00;
hwloc_cpuid(&eax, &ebx, &ecx, &edx);
Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/utils/hwloc.7in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/utils/hwloc.7in 2013-01-03 18:17:31 UTC (rev 10816)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/utils/hwloc.7in 2013-01-03 18:17:36 UTC (rev 10817)
@@ -1,5 +1,5 @@
.\" -*- nroff -*-
-.\" Copyright © 2010-2012 Inria. All rights reserved.
+.\" Copyright © 2010-2013 Inria. All rights reserved.
.\" Copyright © 2010 Université of Bordeaux
.\" Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
.\" See COPYING in top-level directory.
@@ -125,13 +125,15 @@
Locations may also be a PCI or OS object.
The corresponding value is the set of CPUs that are close to the
physical device.
-For example, "pci=02:03.1" is equivalent to the set of processors
+.
+For example, "\fBpci=02:03.1\fR" is equivalent to the set of processors
that are close to the hostbridge above PCI device with bus ID "02:03.1".
-"os=eth0" is equivalent to all processors close to the network
+.
+"\fBos=eth0\fR" is equivalent to all processors close to the network
interface whose software name is "eth0".
.
.PP
-Multiple locations can be specified on the hwloc-bind command line
+Multiple locations can be specified on the command lines
(delimited by whitespace); the first token of the execution command is
assumed to either follow "--" (if specified) or the first token that
is unrecognized as a location.
More information about the commits
mailing list