提交 4e1ef427 编写于 作者: S Serge Semin 提交者: Jon Mason

NTB: ntb_test: Update ntb_tool DB tests

DB interface of ntb_tool driver hasn't been changed much, but
db_valid_mask DebugFS file has still been added. In this case
it's much better to test all valid DB bits instead of using
the predefined mask, which may be incorrect in general.
Signed-off-by: NSerge Semin <fancer.lancer@gmail.com>
Signed-off-by: NJon Mason <jdmason@kudzu.us>
上级 0298e5b9
...@@ -18,7 +18,6 @@ LIST_DEVS=FALSE ...@@ -18,7 +18,6 @@ LIST_DEVS=FALSE
DEBUGFS=${DEBUGFS-/sys/kernel/debug} DEBUGFS=${DEBUGFS-/sys/kernel/debug}
DB_BITMASK=0x7FFF
PERF_RUN_ORDER=32 PERF_RUN_ORDER=32
MAX_MW_SIZE=0 MAX_MW_SIZE=0
RUN_DMA_TESTS= RUN_DMA_TESTS=
...@@ -39,7 +38,6 @@ function show_help() ...@@ -39,7 +38,6 @@ function show_help()
echo "be highly recommended." echo "be highly recommended."
echo echo
echo "Options:" echo "Options:"
echo " -b BITMASK doorbell clear bitmask for ntb_tool"
echo " -C don't cleanup ntb modules on exit" echo " -C don't cleanup ntb modules on exit"
echo " -d run dma tests" echo " -d run dma tests"
echo " -h show this help message" echo " -h show this help message"
...@@ -56,7 +54,6 @@ function parse_args() ...@@ -56,7 +54,6 @@ function parse_args()
OPTIND=0 OPTIND=0
while getopts "b:Cdhlm:r:p:w:" opt; do while getopts "b:Cdhlm:r:p:w:" opt; do
case "$opt" in case "$opt" in
b) DB_BITMASK=${OPTARG} ;;
C) DONT_CLEANUP=1 ;; C) DONT_CLEANUP=1 ;;
d) RUN_DMA_TESTS=1 ;; d) RUN_DMA_TESTS=1 ;;
h) show_help; exit 0 ;; h) show_help; exit 0 ;;
...@@ -215,21 +212,30 @@ function doorbell_test() ...@@ -215,21 +212,30 @@ function doorbell_test()
echo "Running db tests on: $(basename $LOC) / $(basename $REM)" echo "Running db tests on: $(basename $LOC) / $(basename $REM)"
write_file "c $DB_BITMASK" "$REM/db" DB_VALID_MASK=$(read_file "$LOC/db_valid_mask")
for ((i=1; i <= 8; i++)); do write_file "c $DB_VALID_MASK" "$REM/db"
let DB=$(read_file "$REM/db") || true
if [[ "$DB" != "$EXP" ]]; then for ((i = 0; i < 64; i++)); do
DB=$(read_file "$REM/db")
if [[ "$DB" -ne "$EXP" ]]; then
echo "Doorbell doesn't match expected value $EXP " \ echo "Doorbell doesn't match expected value $EXP " \
"in $REM/db" >&2 "in $REM/db" >&2
exit -1 exit -1
fi fi
let "MASK=1 << ($i-1)" || true let "MASK = (1 << $i) & $DB_VALID_MASK" || true
let "EXP=$EXP | $MASK" || true let "EXP = $EXP | $MASK" || true
write_file "s $MASK" "$LOC/peer_db" write_file "s $MASK" "$LOC/peer_db"
done done
write_file "c $DB_VALID_MASK" "$REM/db_mask"
write_file $DB_VALID_MASK "$REM/db_event"
write_file "s $DB_VALID_MASK" "$REM/db_mask"
write_file "c $DB_VALID_MASK" "$REM/db"
echo " Passed" echo " Passed"
} }
...@@ -393,14 +399,15 @@ function ntb_tool_tests() ...@@ -393,14 +399,15 @@ function ntb_tool_tests()
write_file "Y" "$LOCAL_PEER_TOOL/link_event" write_file "Y" "$LOCAL_PEER_TOOL/link_event"
write_file "Y" "$REMOTE_PEER_TOOL/link_event" write_file "Y" "$REMOTE_PEER_TOOL/link_event"
doorbell_test "$LOCAL_TOOL" "$REMOTE_TOOL"
doorbell_test "$REMOTE_TOOL" "$LOCAL_TOOL"
for PEER_TRANS in $(ls "$LOCAL_TOOL"/peer_trans*); do for PEER_TRANS in $(ls "$LOCAL_TOOL"/peer_trans*); do
PT=$(basename $PEER_TRANS) PT=$(basename $PEER_TRANS)
write_file $MW_SIZE "$LOCAL_TOOL/$PT" write_file $MW_SIZE "$LOCAL_TOOL/$PT"
write_file $MW_SIZE "$REMOTE_TOOL/$PT" write_file $MW_SIZE "$REMOTE_TOOL/$PT"
done done
doorbell_test "$LOCAL_TOOL" "$REMOTE_TOOL"
doorbell_test "$REMOTE_TOOL" "$LOCAL_TOOL"
scratchpad_test "$LOCAL_TOOL" "$REMOTE_TOOL" scratchpad_test "$LOCAL_TOOL" "$REMOTE_TOOL"
scratchpad_test "$REMOTE_TOOL" "$LOCAL_TOOL" scratchpad_test "$REMOTE_TOOL" "$LOCAL_TOOL"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册