# split arguments like "1.8.6-wc3" into "1", "8", "6", "wc3"
eval set -- $(tr "[:punct:]" " " <<< $*)
- echo -n $((($1 << 16) | ($2 << 8) | $3))
+ echo -n "$((($1 << 16) | ($2 << 8) | $3))"
}
export LINUX_VERSION=$(uname -r | sed -e "s/[-.]/ /3" -e "s/ .*//")
TESTNAME=$TESTNAME \
DBENCH_LIB=$DBENCH_LIB \
DBENCH_SRC=$DBENCH_SRC \
+LFS=$LFS \
run_${load}.sh" &
local ppid=$!
log "Started client load: ${load} on $client"
}
replay_barrier() {
- local facet=$1
- do_facet $facet "sync; sync; sync"
- df $MOUNT
+ local facet=$1
+ do_facet $facet "sync; sync; sync"
+ df $MOUNT
- # make sure there will be no seq change
- local clients=${CLIENTS:-$HOSTNAME}
- local f=fsa-\\\$\(hostname\)
- do_nodes $clients "mcreate $MOUNT/$f; rm $MOUNT/$f"
- do_nodes $clients "if [ -d $MOUNT2 ]; then mcreate $MOUNT2/$f; rm $MOUNT2/$f; fi"
+ # make sure there will be no seq change
+ local clients=${CLIENTS:-$HOSTNAME}
+ local f=fsa-\\\$\(hostname\)
+ do_nodes $clients "mcreate $MOUNT/$f; rm $MOUNT/$f"
+ do_nodes $clients "if [ -d $MOUNT2 ]; then mcreate $MOUNT2/$f; rm $MOUNT2/$f; fi"
- local svc=${facet}_svc
- do_facet $facet $LCTL --device %${!svc} notransno
- do_facet $facet $LCTL --device %${!svc} readonly
- do_facet $facet $LCTL mark "$facet REPLAY BARRIER on ${!svc}"
- $LCTL mark "local REPLAY BARRIER on ${!svc}"
+ local svc=${facet}_svc
+ do_facet $facet $LCTL --device ${!svc} notransno
+ do_facet $facet $LCTL --device ${!svc} readonly
+ do_facet $facet $LCTL mark "$facet REPLAY BARRIER on ${!svc}"
+ $LCTL mark "local REPLAY BARRIER on ${!svc}"
}
replay_barrier_nodf() {
- local facet=$1 echo running=${running}
- do_facet $facet "sync; sync; sync"
- local svc=${facet}_svc
- echo Replay barrier on ${!svc}
- do_facet $facet $LCTL --device %${!svc} notransno
- do_facet $facet $LCTL --device %${!svc} readonly
- do_facet $facet $LCTL mark "$facet REPLAY BARRIER on ${!svc}"
- $LCTL mark "local REPLAY BARRIER on ${!svc}"
+ local facet=$1 echo running=${running}
+ do_facet $facet "sync; sync; sync"
+ local svc=${facet}_svc
+ echo Replay barrier on ${!svc}
+ do_facet $facet $LCTL --device ${!svc} notransno
+ do_facet $facet $LCTL --device ${!svc} readonly
+ do_facet $facet $LCTL mark "$facet REPLAY BARRIER on ${!svc}"
+ $LCTL mark "local REPLAY BARRIER on ${!svc}"
}
replay_barrier_nosync() {
- local facet=$1 echo running=${running}
- local svc=${facet}_svc
- echo Replay barrier on ${!svc}
- do_facet $facet $LCTL --device %${!svc} notransno
- do_facet $facet $LCTL --device %${!svc} readonly
- do_facet $facet $LCTL mark "$facet REPLAY BARRIER on ${!svc}"
- $LCTL mark "local REPLAY BARRIER on ${!svc}"
+ local facet=$1 echo running=${running}
+ local svc=${facet}_svc
+ echo Replay barrier on ${!svc}
+ do_facet $facet $LCTL --device ${!svc} notransno
+ do_facet $facet $LCTL --device ${!svc} readonly
+ do_facet $facet $LCTL mark "$facet REPLAY BARRIER on ${!svc}"
+ $LCTL mark "local REPLAY BARRIER on ${!svc}"
}
mds_evict_client() {
$LFS mdts $2 | sed -ne "/^$1: /s/.* \(.*\) .*$/\1/p"
}
+# Description:
+# Return unique identifier for given hostname
+host_id() {
+ local host_name=$1
+ echo $host_name | md5sum | cut -d' ' -f1
+}
+
+# Description:
+# Returns list of ip addresses for each interface
+local_addr_list() {
+ ip addr | awk '/inet\ / {print $2}' | awk -F\/ '{print $1}'
+}
+
+is_local_addr() {
+ local addr=$1
+ # Cache address list to avoid mutiple execution of local_addr_list
+ LOCAL_ADDR_LIST=${LOCAL_ADDR_LIST:-$(local_addr_list)}
+ local i
+ for i in $LOCAL_ADDR_LIST ; do
+ [[ "$i" == "$addr" ]] && return 0
+ done
+ return 1
+}
+
+local_node() {
+ local host_name=$1
+ local is_local="IS_LOCAL_$(host_id $host_name)"
+ if [ -z "${!is_local-}" ] ; then
+ eval $is_local=0
+ local host_ip=$($LUSTRE/tests/resolveip $host_name)
+ is_local_addr "$host_ip" && eval $is_local=1
+ fi
+ [[ "${!is_local}" == "1" ]]
+}
+
remote_node () {
- local node=$1
- [ "$node" != "$(hostname)" ]
+ local node=$1
+ local_node $node && return 1
+ return 0
}
remote_mds ()