<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffcc" text="#000066">
<tt>Tristan,<br>
<br>
Using "-mca btl_tcp_if_include eth0", you are assuming all nodes in the
cluster use eth0 as public or private network. That may not be true.
Some nodes in my cluster use eth1 or eth2 too.<br>
<br>
Other than that, it all looks good to me.<br>
<br>
</tt>
<pre class="moz-signature" cols="72">Regards,

Marcos Eduardo Matsunaga

Oracle USA
Linux Engineering

“The statements and opinions expressed here are my own and do not
necessarily represent those of Oracle Corporation.”
</pre>
<br>
<br>
Tristan Ye wrote:
<blockquote
 cite="mid:1255167394-21149-1-git-send-email-tristan.ye@oracle.com"
 type="cite">
  <pre wrap="">This patch first update o2tf.sh(openmpi_run() func) since 1.3.2 openmpi deprecated
one mca parameter which we used for specifying the remote connection method(rsh or ssh)

Secondly, it fixes a bug in multi-inline-tests which may bite us with 1.3.2 openmpi if we
use 'sudo' before mpi binary.

Signed-off-by: Tristan Ye <a class="moz-txt-link-rfc2396E" href="mailto:tristan.ye@oracle.com">&lt;tristan.ye@oracle.com&gt;</a>
---
 programs/inline-data/multi-inline-data.c |    4 +-
 programs/inline-data/multi-inline-dirs.c |    4 +-
 programs/inline-data/multi-inline-run.sh |   70 +++++-------------------------
 programs/python_common/o2tf.py           |    8 ++--
 4 files changed, 19 insertions(+), 67 deletions(-)

diff --git a/programs/inline-data/multi-inline-data.c b/programs/inline-data/multi-inline-data.c
index d30b283..7a6b929 100755
--- a/programs/inline-data/multi-inline-data.c
+++ b/programs/inline-data/multi-inline-data.c
@@ -119,7 +119,7 @@ extern int is_file_inlined(char *dirent_name, unsigned long *i_size,
 
 static void usage(void)
 {
-        printf("Usage: inline-data [-i &lt;iteration&gt;] "
+        printf("Usage: multi-inline-data [-i &lt;iteration&gt;] "
                "&lt;-d &lt;device&gt;&gt; &lt;mount_point&gt;\n"
                "Run a series of tests intended to verify I/O to and from\n"
                "files/dirs with inline data.\n\n"
@@ -156,7 +156,7 @@ static int parse_opts(int argc, char **argv)
 {
         int c;
         while (1) {
-                c = getopt(argc, argv, "D:d:I:i:C:c:M:m:");
+                c = getopt(argc, argv, "D:d:I:i:");
                 if (c == -1)
                         break;
                 switch (c) {
diff --git a/programs/inline-data/multi-inline-dirs.c b/programs/inline-data/multi-inline-dirs.c
index 047b14f..e3be06b 100644
--- a/programs/inline-data/multi-inline-dirs.c
+++ b/programs/inline-data/multi-inline-dirs.c
@@ -127,7 +127,7 @@ static inline char rand_char(void)
 
 static void usage(void)
 {
-        printf("Usage: inline-dirs [-i &lt;iteration&gt;] [-s operated_entries] "
+        printf("Usage: multi-inline-dirs [-i &lt;iteration&gt;] [-s operated_entries] "
                "&lt;-d &lt;device&gt;&gt; &lt;mount_point&gt;\n"
                "Run a series of tests intended to verify I/O to and from\n"
                "dirs with inline data.\n\n"
@@ -165,7 +165,7 @@ static int parse_opts(int argc, char **argv)
 {
         int c;
         while (1) {
-                c = getopt(argc, argv, "D:d:I:i:C:c:M:m:S:s:");
+                c = getopt(argc, argv, "D:d:I:i:S:s:");
                 if (c == -1)
                         break;
                 switch (c) {
diff --git a/programs/inline-data/multi-inline-run.sh b/programs/inline-data/multi-inline-run.sh
index bc77573..6b18903 100755
--- a/programs/inline-data/multi-inline-run.sh
+++ b/programs/inline-data/multi-inline-run.sh
@@ -41,8 +41,8 @@ REMOTE_MOUNT_BIN="${BINDIR}/remote_mount.py"
 UMOUNT_BIN="`which sudo` -u root `which umount`"
 REMOTE_UMOUNT_BIN="${BINDIR}/remote_umount.py"
 MKFS_BIN="`which sudo` -u root `which mkfs.ocfs2`"
-INLINE_DATA_BIN="`which sudo` -u root ${BINDIR}/multi-inline-data"
-INLINE_DIRS_BIN="`which sudo` -u root ${BINDIR}/multi-inline-dirs"
+INLINE_DATA_BIN="${BINDIR}/multi-inline-data"
+INLINE_DIRS_BIN="${BINDIR}/multi-inline-dirs"
 DEFAULT_LOG="multiple-inline-data-test-logs"
 LOG_OUT_DIR=
 DATA_LOG_FILE=
@@ -56,14 +56,13 @@ CLUSTERSIZE=
 BLOCKNUMS=
 
 TMP_DIR=/tmp
-DEFAULT_HOSTFILE=".openmpi_hostfile"
 DEFAULT_RANKS=4
 
 declare -i MPI_RANKS
 MPI_HOSTS=
 MPI_HOSTFILE=
 MPI_ACCESS_METHOD="ssh"
-MPI_PLS_AGENT_ARG="-mca pls_rsh_agent ssh:rsh"
+MPI_PLS_AGENT_ARG="-mca plm_rsh_agent ssh:rsh"
 
 set -o pipefail
 
@@ -161,38 +160,13 @@ f_getoptions()
 
 }
 
-f_create_hostfile()
-{
-        MPI_HOSTFILE="${TMP_DIR}/${DEFAULT_HOSTFILE}"
-        TMP_FILE="${TMP_DIR}/.tmp_openmpi_hostfile_$$"
-
-        echo ${MPI_HOSTS}|sed -e 's/,/\n/g'&gt;$TMP_FILE
-
-        if [ -f "$MPI_HOSTFILE" ];then
-               ${RM} -rf ${MPI_HOSTFILE}
-        fi
-
-        while read line
-        do
-                if [ -z $line ];then
-                        continue
-                fi
-
-                echo "$line"&gt;&gt;$MPI_HOSTFILE
-
-        done&lt;$TMP_FILE
-
-
-        ${RM} -rf $TMP_FILE
-}
-
 f_setup()
 {
 
         f_getoptions $*
 
         if [ "$MPI_ACCESS_METHOD" = "rsh" ];then
-                MPI_PLS_AGENT_ARG="-mca pls_rsh_agent rsh:ssh"
+                MPI_PLS_AGENT_ARG="-mca plm_rsh_agent rsh:ssh"
                 REMOTE_SH_BIN=${RSH_BIN}
         fi
 
@@ -225,10 +199,7 @@ f_setup()
 
         if [ -z "$MPI_HOSTS" ];then
                 f_usage
-        else
-                f_create_hostfile
-        fi
-
+        fi
 }
 
 f_do_mkfs_and_mount()
@@ -241,14 +212,6 @@ f_do_mkfs_and_mount()
         echo_status ${RET} |tee -a ${RUN_LOG_FILE}
         exit_or_not ${RET}
 
-#        while read node_line ; do
-#                host_node=`echo ${node_line}|${AWK_BIN} '{print $1}'`
-#                echo -n "Mounting device to ${MOUNT_POINT} on ${host_node}:"|tee -a ${RUN_LOG_FILE}
-#                RET=$(${REMOTE_SH_BIN} -n ${host_node} "sudo /bin/mount -t ocfs2 -o rw,nointr ${OCFS2_DEVICE} ${MOUNT_POINT};echo \$?" 2&gt;&gt;${RUN_LOG_FILE})
-#                echo_status ${RET} |tee -a ${RUN_LOG_FILE}
-#                exit_or_not ${RET}
-#                        
-#        done&lt;${MPI_HOSTFILE}
         echo -n "Mounting device ${OCFS2_DEVICE} to nodes(${MPI_HOSTS}):"|tee -a ${RUN_LOG_FILE}
         ${REMOTE_MOUNT_BIN} -l ocfs2-inline-test -m ${MOUNT_POINT} -n ${MPI_HOSTS}&gt;&gt;${RUN_LOG_FILE} 2&gt;&amp;1
         RET=$?
@@ -262,24 +225,13 @@ f_do_mkfs_and_mount()
 
 f_do_umount()
 {
-#        while read node_line;do
-#                host_node=`echo ${node_line}|awk '{print $1}'`
-#                echo -ne "Unmounting device from ${MOUNT_POINT} on ${host_node}:"|tee -a ${RUN_LOG_FILE}
-#                RET=$(${REMOTE_SH_BIN} -n ${host_node} "sudo /bin/umount ${MOUNT_POINT};echo \$?" 2&gt;&gt;${RUN_LOG_FILE})
-#                echo_status ${RET} |tee -a ${RUN_LOG_FILE}
-#                exit_or_not ${RET}
-#                
-#        done&lt;${MPI_HOSTFILE}
-
         echo -n "Umounting device ${OCFS2_DEVICE} from nodes(${MPI_HOSTS}):"|tee -a ${RUN_LOG_FILE}
         ${REMOTE_UMOUNT_BIN} -m ${MOUNT_POINT} -n ${MPI_HOSTS}&gt;&gt;${RUN_LOG_FILE} 2&gt;&amp;1
         RET=$?
         echo_status ${RET} |tee -a ${RUN_LOG_FILE}
         exit_or_not ${RET}
-
 }
 
-
 f_run_data_test()
 {
         echo &gt;&gt;${DATA_LOG_FILE}
@@ -290,7 +242,7 @@ f_run_data_test()
         echo "=========================================================="&gt;&gt;${DATA_LOG_FILE}
         echo -e "Testing Binary:\t\t${INLINE_DATA_BIN} -i 1 -d ${OCFS2_DEVICE} ${MOUNT_POINT}"&gt;&gt;${DATA_LOG_FILE}
 
-        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE} ${INLINE_DATA_BIN} -i 1 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DATA_LOG_FILE} 2&gt;&amp;1
+        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS} ${INLINE_DATA_BIN} -i 1 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DATA_LOG_FILE} 2&gt;&amp;1
         RET=$?
         echo_status ${RET} |tee -a ${RUN_LOG_FILE}
         exit_or_not ${RET}
@@ -302,9 +254,9 @@ f_run_data_test()
         echo -ne "Stress Test For Regular File Among Nodes:"&gt;&gt; ${DATA_LOG_FILE}             
         echo &gt;&gt;${DATA_LOG_FILE}
         echo "=========================================================="&gt;&gt;${DATA_LOG_FILE}
-        echo -e "Testing Binary:\t\t${INLINE_DATA_BIN} -i 50 -d ${OCFS2_DEVICE} ${MOUNT_POINT}"&gt;&gt;${DATA_LOG_FILE}
+        echo -e "Testing Binary:\t\t${INLINE_DATA_BIN} -i 200 -d ${OCFS2_DEVICE} ${MOUNT_POINT}"&gt;&gt;${DATA_LOG_FILE}
 
-        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE} ${INLINE_DATA_BIN} -i 200  -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DATA_LOG_FILE} 2&gt;&amp;1
+        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS} ${INLINE_DATA_BIN} -i 200 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DATA_LOG_FILE} 2&gt;&amp;1
         RET=$?
         echo_status ${RET} |tee -a ${RUN_LOG_FILE}
         exit_or_not ${RET}
@@ -321,7 +273,7 @@ f_run_dirs_test()
         echo "=========================================================="&gt;&gt;${DIRS_LOG_FILE}
         echo -e "Testing Binary:\t\t${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}"&gt;&gt;${DIRS_LOG_FILE}
 
-        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE}  ${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DIRS_LOG_FILE} 2&gt;&amp;1
+        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS}  ${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DIRS_LOG_FILE} 2&gt;&amp;1
         RET=$?
         echo_status ${RET} |tee -a ${RUN_LOG_FILE}
         exit_or_not ${RET}
@@ -335,7 +287,7 @@ f_run_dirs_test()
         echo "=========================================================="&gt;&gt;${DIRS_LOG_FILE}
         echo -e "Testing Binary:\t\t${INLINE_DIRS_BIN} -i 1 -s 100 -d ${OCFS2_DEVICE} ${MOUNT_POINT}"&gt;&gt;${DIRS_LOG_FILE}
 
-        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE}  ${INLINE_DIRS_BIN} -i 1 -s 100 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DIRS_LOG_FILE} 2&gt;&amp;1
+        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS}  ${INLINE_DIRS_BIN} -i 1 -s 100 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DIRS_LOG_FILE} 2&gt;&amp;1
         RET=$?
         echo_status ${RET} |tee -a ${RUN_LOG_FILE}
         exit_or_not ${RET}
@@ -349,7 +301,7 @@ f_run_dirs_test()
         echo "=========================================================="&gt;&gt;${DIRS_LOG_FILE}
         echo -e "Testing Binary:\t\t${INLINE_DIRS_BIN} -i 5 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}"&gt;&gt;${DIRS_LOG_FILE}
 
-        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE}  ${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DIRS_LOG_FILE} 2&gt;&amp;1
+        ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS}  ${INLINE_DIRS_BIN} -i 5 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}&gt;&gt;${DIRS_LOG_FILE} 2&gt;&amp;1
         RET=$?
         echo_status ${RET} |tee -a ${RUN_LOG_FILE}
         exit_or_not ${RET}
diff --git a/programs/python_common/o2tf.py b/programs/python_common/o2tf.py
index 5e68aaf..df060cb 100644
--- a/programs/python_common/o2tf.py
+++ b/programs/python_common/o2tf.py
@@ -212,9 +212,9 @@ so just do a sanity check here to test if all nodes are available.
         nodelen = len(nodelist)
 
         if remote_sh == '' or remote_sh == 'ssh':
-                shopt = '-mca pls_rsh_agent ssh:rsh'
+                shopt = '-mca plm_rsh_agent ssh:rsh'
         else:
-                shopt = '-mca pls_rsh_agent rsh:ssh'
+                shopt = '-mca plm_rsh_agent rsh:ssh'
 
         fd = open(config.MPIHOSTS,'w',0)
         for i in range(nodelen):
@@ -252,9 +252,9 @@ def openmpi_run(DEBUGON, nproc, cmd, nodes, remote_sh, logfile, w_flag):
                 nprocopt='-np ' + str(nproc)
 
         if remote_sh == '' or remote_sh == 'ssh':
-                shopt = '-mca pls_rsh_agent ssh:rsh'
+                shopt = '-mca plm_rsh_agent ssh:rsh'
         else:
-                shopt = '-mca pls_rsh_agent rsh:ssh'
+                shopt = '-mca plm_rsh_agent rsh:ssh'
         try:
                 if DEBUGON:
                         printlog('o2tf.mpi_run: MPIRUN = %s' % config.MPIRUN,
  </pre>
</blockquote>
</body>
</html>