Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752020AbdLEUmS (ORCPT ); Tue, 5 Dec 2017 15:42:18 -0500 Received: from mail-lf0-f68.google.com ([209.85.215.68]:33606 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750740AbdLEUmR (ORCPT ); Tue, 5 Dec 2017 15:42:17 -0500 X-Google-Smtp-Source: AGs4zMbzGAvvY2qrkQLqD9Eb47Pjv20j+vBIoa2uB1lc+O8mFcWRI3cSpVmCCyhqNa3MpQ3MNjZ2JA== Date: Tue, 5 Dec 2017 23:42:21 +0300 From: Serge Semin To: Jon Mason Cc: Dave Jiang , "Hubbe, Allen" , "S-k, Shyam-sundar" , "Yu, Xiangliang" , Gary R Hook , Sergey.Semin@t-platforms.ru, linux-ntb , linux-kernel Subject: Re: [PATCH v2 10/15] NTB: ntb_test: Update ntb_tool DB tests Message-ID: <20171205204221.GI1701@mobilestation> References: <20171203191736.3399-1-fancer.lancer@gmail.com> <20171203191736.3399-11-fancer.lancer@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4248 Lines: 109 On Tue, Dec 05, 2017 at 01:27:57PM -0500, Jon Mason wrote: > On Sun, Dec 3, 2017 at 2:17 PM, Serge Semin wrote: > > DB interface of ntb_tool driver hasn't been changed much, but > > db_valid_mask DebugFS file has still been added to new ntb_tool > > driver. 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: Serge Semin > > --- > > tools/testing/selftests/ntb/ntb_test.sh | 29 ++++++++++++++++++----------- > > 1 file changed, 18 insertions(+), 11 deletions(-) > > > > diff --git a/tools/testing/selftests/ntb/ntb_test.sh b/tools/testing/selftests/ntb/ntb_test.sh > > index 247458c6d8dc..3d43885ea4b5 100755 > > --- a/tools/testing/selftests/ntb/ntb_test.sh > > +++ b/tools/testing/selftests/ntb/ntb_test.sh > > @@ -18,7 +18,6 @@ LIST_DEVS=FALSE > > > > DEBUGFS=${DEBUGFS-/sys/kernel/debug} > > > > -DB_BITMASK=0x7FFF > > PERF_RUN_ORDER=32 > > MAX_MW_SIZE=0 > > RUN_DMA_TESTS= > > @@ -39,7 +38,6 @@ function show_help() > > echo "be highly recommended." > > echo > > echo "Options:" > > - echo " -b BITMASK doorbell clear bitmask for ntb_tool" > > echo " -C don't cleanup ntb modules on exit" > > echo " -d run dma tests" > > echo " -h show this help message" > > @@ -56,7 +54,6 @@ function parse_args() > > OPTIND=0 > > while getopts "b:Cdhlm:r:p:w:" opt; do > > case "$opt" in > > - b) DB_BITMASK=${OPTARG} ;; > > C) DONT_CLEANUP=1 ;; > > d) RUN_DMA_TESTS=1 ;; > > h) show_help; exit 0 ;; > > @@ -215,21 +212,30 @@ function doorbell_test() > > > > 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 > > - let DB=$(read_file "$REM/db") || true > > - if [[ "$DB" != "$EXP" ]]; then > > + write_file "c $DB_VALID_MASK" "$REM/db" > > + > > + for ((i = 0; i < 64; i++)); do > > I'm guessing this should be a tunable variable, for those systems with > a different number of doorbells. > 64 is the maximum number of doorbells supported by the NTB API. But we are checking only the valid ones for the NTB device being tested. For this purpose the script reads the db_valid_mask file. > > > + DB=$(read_file "$REM/db") > > + if [[ "$DB" -ne "$EXP" ]]; then > > echo "Doorbell doesn't match expected value $EXP " \ > > "in $REM/db" >&2 > > exit -1 > > fi > > > > - let "MASK=1 << ($i-1)" || true > > - let "EXP=$EXP | $MASK" || true > > + let "MASK = (1 << $i) & $DB_VALID_MASK" || true > > + let "EXP = $EXP | $MASK" || true > > + > > write_file "s $MASK" "$LOC/peer_db" > > 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" > > } > > > > @@ -393,14 +399,15 @@ function ntb_tool_tests() > > write_file "Y" "$LOCAL_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 > > PT=$(basename $PEER_TRANS) > > write_file $MW_SIZE "$LOCAL_TOOL/$PT" > > write_file $MW_SIZE "$REMOTE_TOOL/$PT" > > done > > > > - doorbell_test "$LOCAL_TOOL" "$REMOTE_TOOL" > > - doorbell_test "$REMOTE_TOOL" "$LOCAL_TOOL" > > scratchpad_test "$LOCAL_TOOL" "$REMOTE_TOOL" > > scratchpad_test "$REMOTE_TOOL" "$LOCAL_TOOL" > > > > -- > > 2.12.0 > >