-get_ost_param() {
- local token=$1
- local gl_sum=0
- for node in $(osts_nodes); do
- gl=$(do_node $node "$LCTL get_param -n ost.OSS.ost.stats" | awk '/'$token'/ {print $2}' | head -n 1)
- [ x$gl = x"" ] && gl=0
- gl_sum=$((gl_sum + gl))
- done
- echo $gl_sum
-}
-
-som_mode_switch() {
- local som=$1
- local gl1=$2
- local gl2=$3
-
- if [ x$som = x"enabled" ]; then
- [ $((gl2 - gl1)) -gt 0 ] && error "no glimpse RPC is expected"
- MOUNT_OPTS=`echo $MOUNT_OPTS |
- sed 's/som_preview,\|,som_preview\|som_preview//g'`
- do_facet mgs "$LCTL conf_param $FSNAME.mdt.som=disabled"
- else
- [ $((gl2 - gl1)) -gt 0 ] || error "some glimpse RPC is expected"
- MOUNT_OPTS="${MOUNT_OPTS:+$MOUNT_OPTS,}som_preview"
- do_facet mgs "$LCTL conf_param $FSNAME.mdt.som=enabled"
- fi
-
- # do remount to make new mount-conf parameters actual
- echo remounting...
- sync
- stopall
- setupall
-}
-
-test_132() { #1028, SOM
- [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
- remote_mds_nodsh && skip "remote MDS with nodsh" && return
- local mdtidx=$($LFS getstripe -M $DIR)
- local facet=mds$((mdtidx + 1))
-
- local MOUNTOPT_SAVE=$MOUNTOPT
-
- dd if=/dev/zero of=$DIR/$tfile count=1 2>/dev/null
- cancel_lru_locks osc
- som1=$(do_facet $facet "$LCTL get_param mdt.*.som" |
- awk -F= ' {print $2}' | head -n 1)
-
- gl1=$(get_ost_param "ldlm_glimpse_enqueue")
- stat $DIR/$tfile >/dev/null
- gl2=$(get_ost_param "ldlm_glimpse_enqueue")
- echo "====> SOM is "$som1", "$((gl2 - gl1))" glimpse RPC occured"
- rm $DIR/$tfile
- som_mode_switch $som1 $gl1 $gl2
-
- dd if=/dev/zero of=$DIR/$tfile count=1 2>/dev/null
- cancel_lru_locks osc
-
- som2=$(do_facet $facet "$LCTL get_param mdt.*.som" |
- awk -F= ' {print $2}' | head -n 1)
- if [ $som1 == $som2 ]; then
- error "som is still "$som2
- if [ x$som2 = x"enabled" ]; then
- som2="disabled"
- else
- som2="enabled"
- fi
- fi
-
- gl1=$(get_ost_param "ldlm_glimpse_enqueue")
- stat $DIR/$tfile >/dev/null
- gl2=$(get_ost_param "ldlm_glimpse_enqueue")
- echo "====> SOM is "$som2", "$((gl2 - gl1))" glimpse RPC occured"
- som_mode_switch $som2 $gl1 $gl2
- MOUNT_OPTS=$MOUNT_OPTS_SAVE
-}
-run_test 132 "som avoids glimpse rpc"
-