[mpich2-commits] r9545 - in mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc: . contrib include src

balaji at mcs.anl.gov balaji at mcs.anl.gov
Tue Feb 28 11:42:33 CST 2012


Author: balaji
Date: 2012-02-28 11:42:32 -0600 (Tue, 28 Feb 2012)
New Revision: 9545

Added:
   mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/contrib/hwloc-valgrind.supp
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/include/hwloc.h
   mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/bind.c
Log:
Update to hwloc-1.4.1rc2 to test it out (in preparation for the 1.4.1
release).  Simple tests work well.  More thorough testing is needed.

Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/Makefile.am	2012-02-28 05:32:10 UTC (rev 9544)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/Makefile.am	2012-02-28 17:42:32 UTC (rev 9545)
@@ -22,6 +22,11 @@
 pkgconfig_DATA = hwloc.pc
 endif
 
+# Only install the valgrind suppressions file if we're building in standalone mode
+if HWLOC_BUILD_STANDALONE
+dist_pkgdata_DATA = contrib/hwloc-valgrind.supp
+endif
+
 #
 # "make distcheck" requires that tarballs are able to be able to "make
 # dist", so we have to include config/distscript.csh.

Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/NEWS
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/NEWS	2012-02-28 05:32:10 UTC (rev 9544)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/NEWS	2012-02-28 17:42:32 UTC (rev 9545)
@@ -1,6 +1,6 @@
 Copyright © 2009 CNRS
 Copyright © 2009-2011 inria.  All rights reserved.
-Copyright © 2009-2011 Université Bordeaux 1
+Copyright © 2009-2012 Université Bordeaux 1
 Copyright © 2009-2011 Cisco Systems, Inc.  All rights reserved.
 
 $COPYRIGHT$
@@ -20,11 +20,16 @@
 Version 1.4.1
 -------------
 * This release contains all changes from v1.3.2.
+* Fix hwloc_alloc_membind, thanks Karl Napf for reporting the issue.
+* Fix memory leaks in some get_membind() functions.
+* Fix helpers converting from Linux libnuma to hwloc (hwloc/linux-libnuma.h)
+  in case of out-of-order NUMA node ids.
 * Fix some overzealous assertions in the distance grouping code.
 * Workaround BIOS reporting empty I/O locality in cuda and openfabrics
   helpers on Linux. Thanks to Albert Solernou for reporting the problem.
-* Fix helpers converting from Linux libnuma to hwloc (hwloc/linux-libnuma.h)
-  in case of out-of-order NUMA node ids.
+* Install a valgrind suppressions file hwloc-valgrind.supp (see the FAQ).
+* Fix memory binding documentation. Thanks to Karl Napf for reporting the
+  issues.
 
 
 Version 1.4.0 (does not contain all v1.3.2 changes)

Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/VERSION
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/VERSION	2012-02-28 05:32:10 UTC (rev 9544)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/VERSION	2012-02-28 17:42:32 UTC (rev 9545)
@@ -16,7 +16,7 @@
 # requirement is that it must be entirely printable ASCII characters
 # and have no white space.
 
-greek=rc1
+greek=rc3
 
 # If want_repo_rev=1, then the SVN r number will be included in the overall
 # hwloc version number in some form.

Added: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/contrib/hwloc-valgrind.supp
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/contrib/hwloc-valgrind.supp	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/contrib/hwloc-valgrind.supp	2012-02-28 17:42:32 UTC (rev 9545)
@@ -0,0 +1,31 @@
+# Copyright © 2012      inria.  All rights reserved.
+# See COPYING in top-level directory.
+
+# suppressions file to be passed to valgrind with
+#   --suppressions=/path/to/hwloc-valgrind.supp
+
+# zlib (brought by libpci or libxml2) doesn't cleanup its global state
+{
+   inflate_init
+   Memcheck:Cond
+   fun:inflateReset2
+   fun:inflateInit2_
+}
+
+# hwloc cannot free the global parser (with xmlCleanupParser()) because other threads may be using it
+{
+   xml_init_parser
+   Memcheck:Leak
+   ...
+   fun:xmlInitParser
+}
+
+# hwloc cannot free the global xml dict RMutex because it cannot call xmlCleanupParser() as explained above
+{
+   xml_dict_create_new_rmutex
+   Memcheck:Leak
+   fun:malloc
+   fun:xmlNewRMutex
+   ...
+   fun:xmlDictCreate
+}

Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/hwloc.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/hwloc.h	2012-02-28 05:32:10 UTC (rev 9544)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/include/hwloc.h	2012-02-28 17:42:32 UTC (rev 9545)
@@ -1536,7 +1536,10 @@
                                          * Pages are individually
                                          * bound to the local NUMA
                                          * node of the first thread
-                                         * that touches it.
+                                         * that touches it. If there is not
+                                         * enough memory on the node, allocation
+                                         * may be done in the specified cpuset
+                                         * before allocating on other nodes.
                                          * \hideinitializer */
   HWLOC_MEMBIND_BIND =		2,	/**< \brief Allocate memory on the specified nodes.
 					 * \hideinitializer */
@@ -1959,9 +1962,9 @@
 
 /** \brief Allocate some memory on the given physical nodeset \p nodeset
  *
- * \return -1 with errno set to ENOSYS if the action is not supported
+ * \return NULL with errno set to ENOSYS if the action is not supported
  * and HWLOC_MEMBIND_STRICT is given
- * \return -1 with errno set to EXDEV if the binding cannot be enforced
+ * \return NULL with errno set to EXDEV if the binding cannot be enforced
  * and HWLOC_MEMBIND_STRICT is given
  *
  * \note The allocated memory should be freed with hwloc_free().
@@ -1970,9 +1973,9 @@
 
 /** \brief Allocate some memory on memory nodes near the given physical cpuset \p cpuset
  *
- * \return -1 with errno set to ENOSYS if the action is not supported
+ * \return NULL with errno set to ENOSYS if the action is not supported
  * and HWLOC_MEMBIND_STRICT is given
- * \return -1 with errno set to EXDEV if the binding cannot be enforced
+ * \return NULL with errno set to EXDEV if the binding cannot be enforced
  * and HWLOC_MEMBIND_STRICT is given
  *
  * \note The allocated memory should be freed with hwloc_free().

Modified: mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/bind.c	2012-02-28 05:32:10 UTC (rev 9544)
+++ mpich2/trunk/src/pm/hydra/tools/topo/hwloc/hwloc/src/bind.c	2012-02-28 17:42:32 UTC (rev 9545)
@@ -1,7 +1,7 @@
 /*
  * Copyright © 2009 CNRS
  * Copyright © 2009-2011 inria.  All rights reserved.
- * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009-2010, 2012 Université Bordeaux 1
  * Copyright © 2011 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -327,6 +327,7 @@
   if (!ret)
     hwloc_cpuset_from_nodeset(topology, set, nodeset);
 
+  hwloc_bitmap_free(nodeset);
   return ret;
 }
 
@@ -382,6 +383,7 @@
   if (!ret)
     hwloc_cpuset_from_nodeset(topology, set, nodeset);
 
+  hwloc_bitmap_free(nodeset);
   return ret;
 }
 
@@ -436,6 +438,7 @@
   if (!ret)
     hwloc_cpuset_from_nodeset(topology, set, nodeset);
 
+  hwloc_bitmap_free(nodeset);
   return ret;
 }
 
@@ -531,7 +534,7 @@
   hwloc_nodeset_t nodeset = hwloc_bitmap_alloc();
   void *ret;
 
-  if (!hwloc_fix_membind_cpuset(topology, nodeset, set)) {
+  if (hwloc_fix_membind_cpuset(topology, nodeset, set)) {
     if (flags & HWLOC_MEMBIND_STRICT)
       ret = NULL;
     else



More information about the mpich2-commits mailing list