[Fuego] [PATCH v2] iperf3: manage mutual exclusion when using the same server

Daniel Sangorrin daniel.sangorrin at toshiba.co.jp
Mon Mar 26 23:40:21 UTC 2018


> -----Original Message-----
> From: Tim.Bird at sony.com [mailto:Tim.Bird at sony.com]
> Sent: Tuesday, March 27, 2018 8:11 AM
> To: daniel.sangorrin at toshiba.co.jp; fuego at lists.linuxfoundation.org
> Subject: RE: [Fuego] [PATCH v2] iperf3: manage mutual exclusion when using the same server
> 
> This is OK for now.  In the future (unknown when), we should add support
> for host-side resource reservation and release.  That might help with this situation
> and others where a host-side service, feature or program should only be used
> by one board at a time.
> 
> Maybe something like "ftc reserve iperf3_server" in run_test, before
> executing the iperf3 client, followed by
> "ftc release iperf3_server" in test_cleanup.
> 
> 'ftc reserver <resource_name>' would reserve the resource, and if
> already reserved wait until it is freed, and return immediately.  This could
> be implemented with some kind of global reservation file pretty easily.
> 
> But since this doesn't exist yet, this is a good enough solution.
> Applied.

I like the idea. I will think about it.

Thanks,
Daniel



> 
>  -- Tim
> 
> > -----Original Message-----
> > From: Daniel Sangorrin on Friday, March 23, 2018 12:02 AM
> >
> > When multiple boards try to connect to the same server
> > perform up to 6 retries with 60 seconds wait before giving up.
> > Note, that the default specs use a test duration of about 64
> > seconds (first 4 are discarded from the final results).
> >
> > Signed-off-by: Daniel Sangorrin <daniel.sangorrin at toshiba.co.jp>
> > ---
> >  engine/tests/Benchmark.iperf3/fuego_test.sh | 21 ++++++++++++++++++-
> > --
> >  1 file changed, 18 insertions(+), 3 deletions(-)
> >
> > diff --git a/engine/tests/Benchmark.iperf3/fuego_test.sh
> > b/engine/tests/Benchmark.iperf3/fuego_test.sh
> > index 4c27ce1..6876d90 100755
> > --- a/engine/tests/Benchmark.iperf3/fuego_test.sh
> > +++ b/engine/tests/Benchmark.iperf3/fuego_test.sh
> > @@ -19,9 +19,24 @@ function test_run {
> >          echo "ERROR: set the server ip on the spec or board file"
> >          return 1
> >      fi
> > -    echo "Using server ip address: $IPERF3_SERVER_IP"
> > -    echo "Starting iperf3 client on the target (CLIENT IP: $IPADDR)"
> > -    cmd "cd $BOARD_TESTDIR/fuego.$TESTDIR; ./iperf3 -V -c
> > $IPERF3_SERVER_IP -f M -J --logfile
> > $BOARD_TESTDIR/fuego.$TESTDIR/output.json --get-server-output
> > $BENCHMARK_IPERF3_CLIENT_PARAMS"
> > +
> > +    echo "Starting iperf3 client on the target (CLIENT IP: $IPADDR, SERVER IP:
> > $IPERF3_SERVER_IP)"
> > +    json_file=$(mktemp)
> > +    for i in 1 2 3 4 5 6; do
> > +        cmd "$BOARD_TESTDIR/fuego.$TESTDIR/iperf3 -V -c
> > $IPERF3_SERVER_IP -J --logfile
> > $BOARD_TESTDIR/fuego.$TESTDIR/output.json --get-server-output
> > $BENCHMARK_IPERF3_CLIENT_PARAMS" && break || \
> > +            echo "The server seems busy running another iperf3 test. Trying again
> > in 30 seconds"
> > +
> > +        # that was our last try so abort the job
> > +        if [ $i -eq 6 ]; then
> > +            abort_job "The server seems busy running another iperf3 test."
> > +        fi
> > +
> > +        # remove the json file before retrying, otherwise it gets appended
> > +        cmd "rm -f $BOARD_TESTDIR/fuego.$TESTDIR/output.json"
> > +        sleep 60
> > +    done
> > +    rm -f $json_file
> > +
> >      report "cat $BOARD_TESTDIR/fuego.$TESTDIR/output.json"
> >  }
> >
> > --
> > 2.7.4
> >
> >
> > _______________________________________________
> > Fuego mailing list
> > Fuego at lists.linuxfoundation.org
> > https://lists.linuxfoundation.org/mailman/listinfo/fuego





More information about the Fuego mailing list