Re: [Fuego] [PATCH v3] lmbench: Add variables to specify scripts and results directory

<[email protected]> Wed, 9 Feb 2022 13:17:42 +0000
Newsgroups dev.linux.lists.fuego
Message-ID <OSYPR01MB55428ADCF9632A10411DCB1EA42E9@OSYPR01MB5542.jpnprd01.prod.outlook.com>
Thanks Tim, for fixing the problems, I will pull the latest changes and verify them.

>-----Original Message-----
>From: Bird, Tim <[email protected]>
>Sent: 09 February 2022 04:00
>To: pyla venkata(TSIP) <[email protected]>
>Cc: [email protected]; dinesh kumar(TSIP)
><[email protected]>; hayashi kazuhiro(林 和宏 □SWC◯ACT)
><[email protected]>
>Subject: RE: [PATCH v3] lmbench: Add variables to specify scripts and results
>directory
>
>Venkata,
>
>Thanks for sending this again.  When I went back and looked through the mail
>list archives, I saw this patch.  I thought I had applied it, but in reviewing the git
>logs and source yesterday, I didn’t see it.  I'm sorry about this, but it looks like
>this one fell through the cracks also.
>
>I did some review, and it mostly looks OK, with one issue I'll point out inline
>below.
>
>
>> -----Original Message-----
>> From: [email protected] <[email protected]>
>>
>> Hi Tim,
>>
>> Could you please review this change as well, I think you might have missed this
>mail.
>>
>> Please feel free to ask me if you need more details on this patch, as it been
>long time we discussed it.
>>
>> Thanks,
>> Venkata.
>> >-----Original Message-----
>> >From: [email protected] <[email protected]>
>> >Sent: 10 November 2021 23:52
>> >To: [email protected]
>> >Cc: pyla venkata(TSIP) <[email protected]>; sangorrin
>> >daniel(サンゴリン ダニエル □SWC◯ACT)
><[email protected]>;
>> >[email protected]; dinesh kumar(TSIP)
>> ><[email protected]>; hayashi kazuhiro(林 和宏 □SWC◯AC
>T)
>> ><[email protected]>
>> >Subject: [PATCH v3] lmbench: Add variables to specify scripts and
>> >results directory
>> >
>> >From: venkata pyla <[email protected]>
>> >
>> >lmbench by default uses board test directory, to look over binaries
>> >and other files when compiled locally.
>> >
>> >if the files are not present in board test directory, then it checks
>> >in generally installed location by distributions
>> >SCRIPTS_DIR=/usr/lib/lmbench/scripts
>> > RESULTS_DIR=/var/lib/lmbench/results
>> >
>> >If still want to specifiy different location for the lmbench files,
>> >one can use the following dynamic variables
>> >
>> >$ ftc run-test -b local -t lmbench2 -p ptrca \
>> >      --dynamic-vars SCRIPTS_DIR=/usr/lib/lmbench/scripts \
>> >      --dynamic-vars RESULTS_DIR=/usr/share/lmbench/results
>> >
>> >Signed-off-by: venkata pyla <[email protected]>
>> >---
>> > tests/Benchmark.lmbench2/fuego_test.sh | 33
>> >+++++++++++++++++++++-----
>> > 1 file changed, 27 insertions(+), 6 deletions(-)
>> >
>> >diff --git a/tests/Benchmark.lmbench2/fuego_test.sh
>> >b/tests/Benchmark.lmbench2/fuego_test.sh
>> >index e21fe0a..e012a80 100755
>> >--- a/tests/Benchmark.lmbench2/fuego_test.sh
>> >+++ b/tests/Benchmark.lmbench2/fuego_test.sh
>> >@@ -23,16 +23,37 @@ function test_deploy {  }
>> >
>> > function test_run {
>> >+   # Get the scripts and results directory paths of lmbench
>> >+   if [ -z "$BENCHMARK_LMBENCH2_SCRIPTS_DIR" ]; then
>> >+      SCRIPTS_DIR="$BOARD_TESTDIR/fuego.$TESTDIR/scripts"
>> >+      RESULTS_DIR="$BOARD_TESTDIR/fuego.$TESTDIR/results"
>> >+      if cmd "test ! -d $SCRIPTS_DIR" ; then
>> >+         SCRIPTS_DIR=/usr/lib/lmbench/scripts
>> >+         RESULTS_DIR=/var/lib/lmbench/results
>> >+         if cmd "test ! -d $SCRIPTS_DIR" ; then
>> >+            abort_job "Could not find lmbench scripts directory.
>> >+ Maybe specify
>> >SCRIPTS_DIR dynamic variable?"
>> >+         fi
>> >+      fi
>> >+   else
>> >+      SCRIPTS_DIR="$BENCHMARK_LMBENCH2_SCRIPTS_DIR"
>> >+      if [ -z "$BENCHMARK_LMBENCH2_RESULTS_DIR" ]; then
>> >+         RESULTS_DIR="$BOARD_TESTDIR/fuego.$TESTDIR/results"
>> >+      else
>> >+         RESULTS_DIR="$BENCHMARK_LMBENCH2_SCRIPTS_DIR"
>> >+      fi
>> >+   fi
>> >+
>> >    # some trickery to get the directory right
>> >    if [ -n "$PREFIX" ] ; then
>> >-      LMBENCH_OS=`ls ./bin`
>> >+      LMBENCH_OS=$(ls $SCRIPTS_DIR/../bin)
>This was originally running in the package build directory, so the use of a local
>operation was OK.  However, SCRIPTS_DIR is a reference to a directory on the
>device under test, so this needs to be $(cmd ls $SCRIPTS_DIR/../bin).
>
>However, having said that, in the case where we are using a pre-installed
>version of lmbench, I think it's a bit weird to be using information from Fuego
>that is derived by looking at Fuego's PREFIX variable, and from the cross-build
>directory name under bin (from the Fuego build directory on the host).  This
>could have little or nothing to do with the strings needed by the pre-installed
>lmbench.  (I mean, they probably match, but they might not.)
>
>The old code made more sense.  Since we were always running the version of
>lmbench that we created, it made sense to use items from the build directory
>for that version, as part of its invocation.
>
>I tried removing the 'if [ -n $PREFIX ] ; ' conditional, but it broke the code.
>
>I changed the name of LMBENCH_OS to LMBENCH_OS_STR, because the old
>name was confusing.  It could either mean the path to the 'os' program, or the
>string produced by the program.  I think using the _STR suffix makes the code
>easier to read.
>
>> >    else
>> >-      LMBENCH_OS=$(scripts/os)
>> >+      get_program_path os $SCRIPTS_DIR
>> >$BOARD_TESTDIR/fuego.$TESTDIR/scripts/os
>> >+      LMBENCH_OS=$(cmd "$PROGRAM_OS")
>The second argument for get_program_path should use colons as separators if
>more than one directory is specified.  See
>http://fuegotest.org/wiki/function_get_program_path
>
>> >    fi
>> >-   safe_cmd "rm -rf $BOARD_TESTDIR/fuego.$TESTDIR/results"
>> >-   safe_cmd "cd $BOARD_TESTDIR/fuego.$TESTDIR/scripts;
>OS=$LMBENCH_OS
>> >./config-run"
>> >-   safe_cmd "cd $BOARD_TESTDIR/fuego.$TESTDIR/scripts;
>OS=$LMBENCH_OS
>> >./results"
>> >-   report "cd $BOARD_TESTDIR/fuego.$TESTDIR/scripts; ./getsummary
>> >../results/$LMBENCH_OS/*.0"
>> >+   cmd "rm -rf $RESULTS_DIR/*"
>> >+   cmd "cd $SCRIPTS_DIR; OS=$LMBENCH_OS BINDIR=$SCRIPTS_DIR/..
>> >+ ./config-
>> >run"
>> >+   cmd "cd $SCRIPTS_DIR; OS=$LMBENCH_OS RESULTSDIR=$RESULTS_DIR
>> >./results"
>> >+   report "cd $SCRIPTS_DIR; ./getsummary
>$RESULTS_DIR/$LMBENCH_OS/*.0"
>> > }
>> >
>> > function test_cleanup {
>> >--
>> >2.20.1
>>
>
>In any event, I applied your patch, and then did a fixup patch on top to address a
>few of the issues above.
>
>Please check it out and let me know if you have any problems with the updated
>code.
>I'm still testing, but it seems to work OK for the boards in my lab.
>
> -- Tim
>