[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.1-74-g498b080

Service Account noreply at mpich.org
Wed Jul 9 11:27:23 CDT 2014

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  498b080329ce6280c6b636ba5c66e8c46a543b6f (commit)
       via  088a8a3f6fe6815e15f3d4892aee9a93985a2fba (commit)
      from  47b0cca8fbd4cc81bdaf966839c9111c09c4cc03 (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 -----------------------------------------------------------------

commit 498b080329ce6280c6b636ba5c66e8c46a543b6f
Author: Pavan Balaji <balaji at anl.gov>
Date:   Fri Jul 4 16:11:31 2014 -0500

    Increase the number of possible PMI arguments.
    Since this is tied to the amount of cache we can maintain for the PMI
    keyvals, a higher number can improve performance.
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/src/pm/hydra/pm/pmiserv/common.h b/src/pm/hydra/pm/pmiserv/common.h
index c0d6dee..d0c249e 100644
--- a/src/pm/hydra/pm/pmiserv/common.h
+++ b/src/pm/hydra/pm/pmiserv/common.h
@@ -14,7 +14,7 @@
 #define PMI_MAXVALLEN    (1024) /* max length of value in keyval space */
 #define PMI_MAXKVSLEN    (256)  /* max length of various names */
-#define MAX_PMI_ARGS  (1024)    /* number of arguments in a PMI command */
+#define MAX_PMI_ARGS  (65536)    /* number of arguments in a PMI command */
 #define MAX_PMI_INTERNAL_ARGS   (65536) /* number of arguments in internal communication */
 struct HYD_pmcd_pmi_kvs_pair {


commit 088a8a3f6fe6815e15f3d4892aee9a93985a2fba
Author: Pavan Balaji <balaji at anl.gov>
Date:   Fri Jul 4 16:07:48 2014 -0500

    Fix bug in PMI keyval caching logic.
    When we were flushing the PMI keyval cache, the cache was flushed in
    the form of a single very long PMI command.  The server would
    interpret this as a single PMI command with many arguments.  However,
    if the cache is larger than the allowed number of PMI arguments, we
    might run out of the allocated space.  This patch connects these two
    values, so the cache can never overrun the number of PMI arguments.
    Thanks to Norio Yamaguchi @ Riken for reporting this issue.
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c b/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
index 291e57f..8694f74 100644
--- a/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
+++ b/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
@@ -17,7 +17,12 @@
             HYDU_dump(stdout, __VA_ARGS__);     \
-#define CACHE_PUT_KEYVAL_MAXLEN  (65536)
+/* The number of key values we store has to be one less than the
+ * number of PMI arguments allowed.  This is because, when we flush
+ * the PMI keyvals upstream, the server will treat it as a single PMI
+ * command.  We leave room for one extra argument, cmd=put, that needs
+ * to be appended when flushing. */
 static struct {
     char *keyval[CACHE_PUT_KEYVAL_MAXLEN + 1];


Summary of changes:
 src/pm/hydra/pm/pmiserv/common.h      |    2 +-
 src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c |    7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

MPICH primary repository

More information about the commits mailing list