Skip to Content.
Sympa Menu

perfsonar-user - Re: [perfsonar-user] Different results from iperf3 vs. bwctl -T iperf3

Subject: perfSONAR User Q&A and Other Discussion

List archive

Re: [perfsonar-user] Different results from iperf3 vs. bwctl -T iperf3


Chronological Thread 
  • From: Brian Candler <>
  • To: Tim Rayner <>, Aaron Brown <>
  • Cc: "" <>
  • Subject: Re: [perfsonar-user] Different results from iperf3 vs. bwctl -T iperf3
  • Date: Sun, 07 Dec 2014 11:05:31 +0000
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=pobox.com; h=message-id:date :from:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; q=dns; s=sasl; b=wZ1i/7 n79ZuxIU3g1HVgqq2JHhVWHsLQonr9cIgNbPlb5FyZ4tYy0nLry6EgVZ3y/eUt9l U40RxjhoKsJstj6yCSZCzXQ68/6y/idN3iW30tO1uGUjHZhKIjUj8sXVWJPRQBML 7XsFEt/zcqms1Z1zIItnphLbswj7fX8zQzSZk=

On 06/12/2014 19:43, Tim Rayner wrote:
I'd be happy to see the iperf3 -Z option to be made a bwctl option, or at
least reported with the bwctl test results - it was quite confusing get
poorer performance when I copied and pasted the reported iperf3 invocation
from bwctl results.

Sure. Looking at the cope I think the simple solution would be to add a global "no_zerocopy" option to bwctld.conf. Otherwise if it's added as a flag in test_spec then I think that involves changing the protocol and the command-line arguments to bwctl.

I also agree it could be sensible to report the options used - although at the moment I don't think it reports any of them?

Regards,

Brian.

P.S. Compiling bwctld under OSX, the compiler gives a whole bunch of warnings. The most serious one seems to be this:

bwctld.c:304:31: warning: sizeof on array function parameter will return size of
'uint8_t *' (aka 'unsigned char *') instead of 'BWLSID'
(aka 'uint8_t [16]') [-Wsizeof-array-argument]
memcpy(res->sid,sid,sizeof(sid));

What it's saying is: the type BWLSID is defined as
typedef uint8_t BWLSID[16];

However the function argument was defined as:

static Reservation
AllocReservation(
ChldState cstate,
BWLSID sid,

and therefore sid is a pointer to the first element of the array, not the whole array, so sizeof(sid) is 4 not 16.

The target of the copy is a 16 byte array, not a pointer:

struct ReservationRec{
BWLToolType tool;
BWLSID sid;

This might explain some of the problems seen with invalid SIDs? The fix would be to use sizeof(BWLSID) instead.

There are other warnings which are obviously bugs too, e.g.

bwctl.c:2014:37: warning: comparison of unsigned expression < 0 is always false
[-Wtautological-compare]
app.opt.timeDuration < 0) {
~~~~~~~~~~~~~~~~~~~~ ^ ~

I can post the full set of compiler warnings if it's helpful.




Archive powered by MHonArc 2.6.16.

Top of Page