From fc7d5d4e276ea9cc1ba371e35586d0ed361c9cf9 Mon Sep 17 00:00:00 2001 From: Michal Berger Date: Wed, 3 Feb 2021 15:59:41 +0100 Subject: [PATCH] scripts/rxe_cfg: Try to get status from all infiniband devices Also, add some minor tweaks for the add|rm routines. Signed-off-by: Michal Berger Change-Id: I39cdbec2c0aca12e7077d8db161e65fdce7ca19f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6241 Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris --- scripts/rxe_cfg_small.sh | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/scripts/rxe_cfg_small.sh b/scripts/rxe_cfg_small.sh index 2f1128569..0b4d5760f 100755 --- a/scripts/rxe_cfg_small.sh +++ b/scripts/rxe_cfg_small.sh @@ -8,6 +8,7 @@ declare -r rdma_rxe_add=$rdma_rxe/parameters/add declare -r rdma_rxe_rm=$rdma_rxe/parameters/remove declare -r infiniband=/sys/class/infiniband +declare -r infiniband_verbs=/sys/class/infiniband_verbs declare -r net=/sys/class/net declare -A net_devices @@ -45,11 +46,16 @@ get_ipv4() { get_rxe_mtu() { local rxe=$1 local mtu + local uverb - [[ -c /dev/infiniband/uverbs${rxe/rxe/} ]] || return 0 - - [[ $(ibv_devinfo -d "$rxe") =~ active_mtu:(.*\ \(.*\)) ]] - echo "${BASH_REMATCH[1]:-(?)}" + for uverb in "$infiniband_verbs/uverbs"*; do + if [[ $(< "$uverb/ibdev") == "$rxe" ]] \ + && [[ -c /dev/infiniband/${uverb##*/} ]]; then + [[ $(ibv_devinfo -d "$rxe") =~ active_mtu:(.*\ \(.*\)) ]] + echo "${BASH_REMATCH[1]:-(?)}" + return 0 + fi + done } start() { @@ -196,7 +202,7 @@ print_status() { add_rxe() { local dev net_devs - [[ -e $rdma_rxe/parameters ]] || return 1 + [[ -e $rdma_rxe_add ]] || return 0 if [[ -z $1 || $1 == all ]]; then net_devs=("${!net_devices[@]}") @@ -222,6 +228,8 @@ add_rxe() { remove_rxe() { local rxes rxe + [[ -e $rdma_rxe_rm ]] || return 0 + rxes=("${!rxe_to_net[@]}") if [[ -z $1 || $1 == all ]]; then rxes=("${!rxe_to_net[@]}") @@ -234,7 +242,7 @@ remove_rxe() { for rxe in "${rxes[@]}"; do echo "$rxe" > "$rdma_rxe_rm" - done + done 2> /dev/null } link_up() { @@ -249,8 +257,8 @@ collect_devices() { for net_dev in "$net/"!(bonding_masters); do (($(< "$net_dev/type") != 1)) && continue net_devices["${net_dev##*/}"]=$net_dev - for rxe_dev in "$infiniband/rxe"+([0-9]); do - if [[ $(< "$rxe_dev/parent") == "${net_dev##*/}" ]]; then + for rxe_dev in "$infiniband/"*; do + if [[ -e $rxe_dev/device/net/${net_dev##*/} ]]; then net_to_rxe["${net_dev##*/}"]=${rxe_dev##*/} rxe_to_net["${rxe_dev##*/}"]=${net_dev##*/} continue 2