On Mon, Nov 16, 2020 at 04:45:03PM -0800, Jakub Kicinski wrote: > On Sat, 14 Nov 2020 00:16:55 +0100 Antonio Cardace wrote: > > Add scripts to test ring and coalesce settings > > of netdevsim. > > > > Signed-off-by: Antonio Cardace <acard...@redhat.com> > > > @@ -0,0 +1,68 @@ > > +#!/bin/bash > > +# SPDX-License-Identifier: GPL-2.0-only > > + > > +source ethtool-common.sh > > + > > +function get_value { > > + local key=$1 > > + > > + echo $(ethtool -c $NSIM_NETDEV | \ > > + awk -F':' -v pattern="$key:" '$0 ~ pattern {gsub(/[ \t]/, "", $2); > > print $2}') > > +} > > + > > +if ! ethtool -h | grep -q coalesce; then > > + echo "SKIP: No --coalesce support in ethtool" > > + exit 4 > > I think the skip exit code for selftests is 2 In the ethtool-pause.sh selftest the exit code is 4 (I copied it from there), should I change that too? > > > +fi > > + > > +NSIM_NETDEV=$(make_netdev) > > + > > +set -o pipefail > > + > > +declare -A SETTINGS_MAP=( > > + ["rx-frames-low"]="rx-frame-low" > > + ["tx-frames-low"]="tx-frame-low" > > + ["rx-frames-high"]="rx-frame-high" > > + ["tx-frames-high"]="tx-frame-high" > > + ["rx-usecs"]="rx-usecs" > > + ["rx-frames"]="rx-frames" > > + ["rx-usecs-irq"]="rx-usecs-irq" > > + ["rx-frames-irq"]="rx-frames-irq" > > + ["tx-usecs"]="tx-usecs" > > + ["tx-frames"]="tx-frames" > > + ["tx-usecs-irq"]="tx-usecs-irq" > > + ["tx-frames-irq"]="tx-frames-irq" > > + ["stats-block-usecs"]="stats-block-usecs" > > + ["pkt-rate-low"]="pkt-rate-low" > > + ["rx-usecs-low"]="rx-usecs-low" > > + ["tx-usecs-low"]="tx-usecs-low" > > + ["pkt-rate-high"]="pkt-rate-high" > > + ["rx-usecs-high"]="rx-usecs-high" > > + ["tx-usecs-high"]="tx-usecs-high" > > + ["sample-interval"]="sample-interval" > > +) > > + > > +for key in ${!SETTINGS_MAP[@]}; do > > + query_key=${SETTINGS_MAP[$key]} > > + value=$((RANDOM % $((2**32-1)))) > > + ethtool -C $NSIM_NETDEV "$key" "$value" > > + s=$(get_value "$query_key") > > It would be better to validate the entire config, not just the most > recently set key. This way we would catch the cases where setting > attr breaks the value of another. > Good idea, will do.
Thanks, Antonio