[mpich2-commits] r7837 - in mpich2/trunk: . src/pm/hydra/tools/bind/hwloc/hwloc src/pm/hydra/tools/bind/hwloc/hwloc/src src/pm/hydra/tools/bind/hwloc/hwloc/utils

balaji at mcs.anl.gov balaji at mcs.anl.gov
Wed Jan 26 10:48:18 CST 2011


Author: balaji
Date: 2011-01-26 10:48:18 -0600 (Wed, 26 Jan 2011)
New Revision: 7837

Modified:
   mpich2/trunk/CHANGES
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c
Log:
Upgrade to hwloc-1.1.1. This commit should essentially allow hwloc to
be used without any modifications. All patches we had to maintain have
been pushed upstream.

No reviewer.

Modified: mpich2/trunk/CHANGES
===================================================================
--- mpich2/trunk/CHANGES	2011-01-26 16:48:17 UTC (rev 7836)
+++ mpich2/trunk/CHANGES	2011-01-26 16:48:18 UTC (rev 7837)
@@ -26,7 +26,7 @@
  # PM/PMI: Several fixes and improvements to Hydra's process binding
    capability.
 
- # PM/PMI: Upgrade the hwloc version to 1.1.1rc1.
+ # PM/PMI: Upgrade the hwloc version to 1.1.1.
 
  # PM/PMI: Allow users to sort node lists allocated by resource
    managers in Hydra.

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS	2011-01-26 16:48:17 UTC (rev 7836)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS	2011-01-26 16:48:18 UTC (rev 7837)
@@ -21,6 +21,7 @@
 -------------
 * Add hwloc_get_api_version() which returns the version of hwloc used
   at runtime. Thanks to Guy Streeter for the suggestion.
+* Fix the number of hugepages reported for NUMA nodes on Linux.
 * Fix hwloc_bitmap_to_ulong() right after allocating the bitmap.
   Thanks to Bernd Kallies for reporting the problem.
 * Fix hwloc_bitmap_from_ith_ulong() to properly zero the first ulong.

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION	2011-01-26 16:48:17 UTC (rev 7836)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION	2011-01-26 16:48:18 UTC (rev 7837)
@@ -16,7 +16,7 @@
 # requirement is that it must be entirely printable ASCII characters
 # and have no white space.
 
-greek=rc3
+greek=rc4
 
 # If want_svn=1, then the SVN r number will be included in the overall
 # hwloc version number in some form.

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac	2011-01-26 16:48:17 UTC (rev 7836)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac	2011-01-26 16:48:18 UTC (rev 7837)
@@ -147,8 +147,8 @@
 
 # Setup libtool, but disable C++, F77, Java and Windows Resource
 # Compiler support -- we don't need that stuff.
-AM_DISABLE_SHARED
-AM_ENABLE_STATIC
+AM_ENABLE_SHARED
+AM_DISABLE_STATIC
 AM_PROG_LIBTOOL([win32-dll])
 LT_LANG([C])
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c	2011-01-26 16:48:17 UTC (rev 7836)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c	2011-01-26 16:48:18 UTC (rev 7837)
@@ -1726,7 +1726,7 @@
   hwloc_parse_meminfo_info(topology, meminfopath,
 			   hwloc_snprintf(NULL, 0, "Node %d ", node),
 			   &memory->local_memory,
-			   &meminfo_hugepages_count, &meminfo_hugepages_size,
+			   &meminfo_hugepages_count, NULL /* no hugepage size in node-specific meminfo */,
 			   memory->page_types == NULL);
 
   if (memory->page_types) {
@@ -1735,12 +1735,14 @@
       /* read from node%d/hugepages/hugepages-%skB/nr_hugepages */
       hwloc_parse_hugepages_info(topology, path, memory, &remaining_local_memory);
     } else {
+      /* get hugepage size from machine-specific meminfo since there is no size in node-specific meminfo,
+       * hwloc_get_procfs_meminfo_info must have been called earlier */
+      meminfo_hugepages_size = topology->levels[0][0]->memory.page_types[1].size;
       /* use what we found in meminfo */
-      /* hwloc_get_procfs_meminfo_info must have been called earlier */
       if (meminfo_hugepages_size) {
         memory->page_types[1].count = meminfo_hugepages_count;
-        memory->page_types[1].size = topology->levels[0][0]->memory.page_types[1].size;
-        remaining_local_memory -= meminfo_hugepages_count * memory->page_types[1].size;
+        memory->page_types[1].size = meminfo_hugepages_size;
+        remaining_local_memory -= meminfo_hugepages_count * meminfo_hugepages_size;
       } else {
         memory->page_types_len = 1;
       }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c	2011-01-26 16:48:17 UTC (rev 7836)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c	2011-01-26 16:48:18 UTC (rev 7837)
@@ -309,7 +309,7 @@
 
 static int hwloc_win_get_VirtualAllocExNumaProc(void) {
   if (VirtualAllocExNumaProc == NULL) {
-    FARPROC alloc_fun, free_fun;
+    FARPROC alloc_fun = NULL, free_fun = NULL;
     HMODULE kernel32;
 
     kernel32 = LoadLibrary("kernel32.dll");
@@ -318,7 +318,7 @@
       free_fun = GetProcAddress(kernel32, "VirtualFreeEx");
     }
 
-    if (!kernel32 || !alloc_fun || !free_fun) {
+    if (!alloc_fun || !free_fun) {
       VirtualAllocExNumaProc = (FARPROC) -1;
       errno = ENOSYS;
       return -1;
@@ -378,7 +378,7 @@
 
 static int hwloc_win_get_QueryWorkingSetExProc(void) {
   if (QueryWorkingSetExProc == NULL) {
-    FARPROC fun;
+    FARPROC fun = NULL;
     HMODULE kernel32, psapi;
 
     kernel32 = LoadLibrary("kernel32.dll");

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c	2011-01-26 16:48:17 UTC (rev 7836)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c	2011-01-26 16:48:18 UTC (rev 7837)
@@ -181,7 +181,7 @@
       if (err) {
 	const char *errmsg = strerror(errno);
         if (pid)
-	  fprintf(stderr, "hwloc_get_proc_cpubind %d failed (errno %d %s)\n", pid, errno, errmsg);
+          fprintf(stderr, "hwloc_get_proc_cpubind %ld failed (errno %d %s)\n", (long) pid, errno, errmsg);
         else
 	  fprintf(stderr, "hwloc_get_cpubind failed (errno %d %s)\n", errno, errmsg);
 	return EXIT_FAILURE;
@@ -199,7 +199,7 @@
       if (err) {
 	const char *errmsg = strerror(errno);
         if (pid)
-	  fprintf(stderr, "hwloc_get_proc_membind %d failed (errno %d %s)\n", pid, errno, errmsg);
+          fprintf(stderr, "hwloc_get_proc_membind %ld failed (errno %d %s)\n", (long) pid, errno, errmsg);
         else
 	  fprintf(stderr, "hwloc_get_membind failed (errno %d %s)\n", errno, errmsg);
 	return EXIT_FAILURE;
@@ -215,7 +215,7 @@
       case HWLOC_MEMBIND_INTERLEAVE: policystr = "interleave"; break;
       case HWLOC_MEMBIND_REPLICATE: policystr = "replicate"; break;
       case HWLOC_MEMBIND_NEXTTOUCH: policystr = "nexttouch"; break;
-      default: fprintf(stderr, "unknown memory policy %u\n", policy); assert(0); break;
+      default: fprintf(stderr, "unknown memory policy %d\n", policy); assert(0); break;
       }
     }
     if (policystr)
@@ -245,7 +245,7 @@
       char *s;
       hwloc_bitmap_asprintf(&s, membind_set);
       if (pid)
-        fprintf(stderr, "hwloc_set_proc_membind %s %d failed (errno %d %s)\n", s, pid, bind_errno, errmsg);
+        fprintf(stderr, "hwloc_set_proc_membind %s %ld failed (errno %d %s)\n", s, (long) pid, bind_errno, errmsg);
       else
         fprintf(stderr, "hwloc_set_membind %s failed (errno %d %s)\n", s, bind_errno, errmsg);
       free(s);
@@ -271,7 +271,7 @@
       char *s;
       hwloc_bitmap_asprintf(&s, cpubind_set);
       if (pid)
-        fprintf(stderr, "hwloc_set_proc_cpubind %s %d failed (errno %d %s)\n", s, pid, bind_errno, errmsg);
+        fprintf(stderr, "hwloc_set_proc_cpubind %s %ld failed (errno %d %s)\n", s, (long) pid, bind_errno, errmsg);
       else
         fprintf(stderr, "hwloc_set_cpubind %s failed (errno %d %s)\n", s, bind_errno, errmsg);
       free(s);



More information about the mpich2-commits mailing list