[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2b3-56-g2efebed

Service Account noreply at mpich.org
Thu Jun 11 09:39:28 CDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  2efebedc447b05d307d708a4f579b03ee64df814 (commit)
       via  9d149761cc5bfd3395b1ecce35b7b3903f9646b5 (commit)
       via  6d9d084ae73b87af05f8be7cb817468d46595e12 (commit)
      from  c229b00e9f8a0e5acbc4cff8cac8957a46a9d6d5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/2efebedc447b05d307d708a4f579b03ee64df814

commit 2efebedc447b05d307d708a4f579b03ee64df814
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date:   Sun Jun 7 09:53:48 2015 -0500

    Bug-fix: free lock entry queue when it was allocated.
    
    Originally we allocate the lock entry queue in Win_create/allocate
    (if no_locks is not set), and free the queue in Win_free (if no_locks
    is not set). This is not correct because no_locks may be set after
    Win_create/allocate and before Win_free. In this patch, we free
    the queue in Win_free if the queue was allocated in Win_create/allocate.
    
    Thanks to Lisandro Dalcin [dalcinl at gmail.com] for reporting this bug.
    
    Fix #2273
    
    Signed-off-by: Pavan Balaji <balaji at anl.gov>

diff --git a/src/mpid/ch3/src/mpidi_rma.c b/src/mpid/ch3/src/mpidi_rma.c
index 58a55a6..4cbec01 100644
--- a/src/mpid/ch3/src/mpidi_rma.c
+++ b/src/mpid/ch3/src/mpidi_rma.c
@@ -241,7 +241,7 @@ int MPIDI_Win_free(MPID_Win ** win_ptr)
     MPIU_Free((*win_ptr)->op_pool_start);
     MPIU_Free((*win_ptr)->target_pool_start);
     MPIU_Free((*win_ptr)->slots);
-    if (!(*win_ptr)->info_args.no_locks) {
+    if ((*win_ptr)->lock_entry_pool_start != NULL) {
         MPIU_Free((*win_ptr)->lock_entry_pool_start);
     }
     MPIU_Assert((*win_ptr)->current_lock_data_bytes == 0);

http://git.mpich.org/mpich.git/commitdiff/9d149761cc5bfd3395b1ecce35b7b3903f9646b5

commit 9d149761cc5bfd3395b1ecce35b7b3903f9646b5
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date:   Sun Jun 7 09:36:43 2015 -0500

    Bug-fix: fix typo error in Win_set_info.
    
    Thanks to Lisandro Dalcin [dalcinl at gmail.com] for reporting this bug.
    
    Signed-off-by: Pavan Balaji <balaji at anl.gov>

diff --git a/src/mpid/ch3/src/ch3u_win_fns.c b/src/mpid/ch3/src/ch3u_win_fns.c
index 974ef66..45b7007 100644
--- a/src/mpid/ch3/src/ch3u_win_fns.c
+++ b/src/mpid/ch3/src/ch3u_win_fns.c
@@ -304,8 +304,8 @@ int MPIDI_Win_set_info(MPID_Win * win, MPID_Info * info)
         if (info_flag) {
             if (!strncmp(info_value, "true", strlen("true")))
                 win->info_args.no_locks = 1;
-            if (!strncmp(info_value, "false", strlen("true")))
-                win->info_args.no_locks = 1;
+            if (!strncmp(info_value, "false", strlen("false")))
+                win->info_args.no_locks = 0;
         }
     }
 

http://git.mpich.org/mpich.git/commitdiff/6d9d084ae73b87af05f8be7cb817468d46595e12

commit 6d9d084ae73b87af05f8be7cb817468d46595e12
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date:   Sun Jun 7 09:55:06 2015 -0500

    Add tests of setting window info no_locks to TRUE / FALSE.
    
    Signed-off-by: Pavan Balaji <balaji at anl.gov>

diff --git a/test/mpi/rma/win_info.c b/test/mpi/rma/win_info.c
index 3a2222d..7a3ee3a 100644
--- a/test/mpi/rma/win_info.c
+++ b/test/mpi/rma/win_info.c
@@ -7,6 +7,7 @@
 
 #include <stdio.h>
 #include <mpi.h>
+#include <string.h>
 #include "mpitest.h"
 
 #define VERBOSE 0
@@ -26,11 +27,13 @@ int main(int argc, char **argv) {
     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
     MPI_Comm_size(MPI_COMM_WORLD, &nproc);
 
+    MPI_Win_allocate(sizeof(int), sizeof(int), MPI_INFO_NULL, MPI_COMM_WORLD, &base, &win);
+
+    /* Test#1: setting and getting invalid key */
+
     MPI_Info_create(&info_in);
     MPI_Info_set(info_in, invalid_key, "true");
 
-    MPI_Win_allocate(sizeof(int), sizeof(int), MPI_INFO_NULL, MPI_COMM_WORLD, &base, &win);
-
     MPI_Win_set_info(win, info_in);
     MPI_Win_get_info(win, &info_out);
 
@@ -45,9 +48,55 @@ int main(int argc, char **argv) {
     }
 #endif
 
+    MPI_Info_free(&info_in);
+    MPI_Info_free(&info_out);
+
+    /* Test#2: setting info key "no_lock" to false and getting the key */
+
+    MPI_Info_create(&info_in);
+    MPI_Info_set(info_in, "no_locks", "false");
+
+    MPI_Win_set_info(win, info_in);
+    MPI_Win_get_info(win, &info_out);
+
     MPI_Info_get(info_out, "no_locks", MPI_MAX_INFO_VAL, buf, &flag);
+    if (!flag || strncmp(buf, "false", strlen("false")) != 0) {
+        if (!flag)
+            printf("%d: no_locks is not defined\n", rank);
+        else
+            printf("%d: no_locks = %s, expected false\n", rank, buf);
+        errors++;
+    }
     if (flag && VERBOSE) printf("%d: no_locks = %s\n", rank, buf);
 
+    MPI_Info_free(&info_in);
+    MPI_Info_free(&info_out);
+
+    /* Test#3: setting info key "no_lock" to true and getting the key */
+
+    MPI_Info_create(&info_in);
+    MPI_Info_set(info_in, "no_locks", "true");
+
+    MPI_Win_set_info(win, info_in);
+    MPI_Win_get_info(win, &info_out);
+
+    MPI_Info_get(info_out, "no_locks", MPI_MAX_INFO_VAL, buf, &flag);
+    if (!flag || strncmp(buf, "true", strlen("true")) != 0) {
+        if (!flag)
+            printf("%d: no_locks is not defined\n", rank);
+        else
+            printf("%d: no_locks = %s, expected true\n", rank, buf);
+        errors++;
+    }
+    if (flag && VERBOSE) printf("%d: no_locks = %s\n", rank, buf);
+
+    MPI_Info_free(&info_in);
+    MPI_Info_free(&info_out);
+
+    /* Test#4: getting other info keys */
+
+    MPI_Win_get_info(win, &info_out);
+
     MPI_Info_get(info_out, "accumulate_ordering", MPI_MAX_INFO_VAL, buf, &flag);
     if (flag && VERBOSE) printf("%d: accumulate_ordering = %s\n", rank, buf);
 
@@ -60,7 +109,6 @@ int main(int argc, char **argv) {
     MPI_Info_get(info_out, "alloc_shm", MPI_MAX_INFO_VAL, buf, &flag);
     if (flag && VERBOSE) printf("%d: alloc_shm = %s\n", rank, buf);
 
-    MPI_Info_free(&info_in);
     MPI_Info_free(&info_out);
     MPI_Win_free(&win);
 

-----------------------------------------------------------------------

Summary of changes:
 src/mpid/ch3/src/ch3u_win_fns.c |    4 +-
 src/mpid/ch3/src/mpidi_rma.c    |    2 +-
 test/mpi/rma/win_info.c         |   54 ++++++++++++++++++++++++++++++++++++--
 3 files changed, 54 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list