[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