[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