Lets make wifi fast again!
 help / color / mirror / Atom feed
From: Bob McMahon <bob.mcmahon@broadcom.com>
To: Make-Wifi-fast <make-wifi-fast@lists.bufferbloat.net>
Subject: [Make-wifi-fast] iperf 2.0.14 --sum-only option and TCP client ending timestamp
Date: Wed, 19 Aug 2020 20:20:48 -0700	[thread overview]
Message-ID: <CAHb6LvqwXEP565Nf05fZ8PXUOF3HXj9L1e0DjAj7Cgn-hfx5Yg@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2173 bytes --]

Hi All,

We're adding a --sum-only option to iperf 2.0.14.  This is useful for
scaling the number of traffic threads to large values. Here is a sample
output:

[rjmcmahon@localhost iperf2-code]$ src/iperf -c 192.168.1.10 -i 1 -P 1000
--sum-only
[SUM-1000]  0.0- 1.0 sec  1.57 GBytes  13.5 Gbits/sec
[SUM-1000]  1.0- 2.0 sec  1.12 GBytes  9.65 Gbits/sec
[SUM-1000]  2.0- 3.0 sec  1.11 GBytes  9.50 Gbits/sec
[SUM-1000]  3.0- 4.0 sec  1.11 GBytes  9.51 Gbits/sec
[SUM-1000]  4.0- 5.0 sec  1.10 GBytes  9.41 Gbits/sec
[SUM-1000]  5.0- 6.0 sec  1.09 GBytes  9.40 Gbits/sec
[SUM-1000]  6.0- 7.0 sec  1.10 GBytes  9.45 Gbits/sec
[SUM-1000]  7.0- 8.0 sec  1.09 GBytes  9.40 Gbits/sec
[SUM-1000]  8.0- 9.0 sec  1.10 GBytes  9.41 Gbits/sec
[SUM-1000]  9.0-10.4 sec  1.34 GBytes  8.47 Gbits/sec
[SUM-1000]  0.0-10.4 sec  11.7 GBytes  9.73 Gbits/sec

I also wanted to get feedback on iperf client timestamps. Particularly on
what exactly constitutes a writer as done?  Is it when the last write
completes on the client host, when the writer issues a socket close(), or
when the writer detects a reader (server) shutdown()
<https://linux.die.net/man/3/shutdown> event, i.e. the FIN, FINACK
handshake? None of these are perfect as there are OS and network
interactions in play for all of them which are difficult to decouple. The
first two will cause a timestamp to be a bit early as the OS hasn't
finished draining the socket even though the application thread is done and
destroyed.  We've chosen to await for the FINACK per the following in the
upcoming release of iperf 2.0.14

	int rc = recv(mySocket, &x, 1, MSG_DONTWAIT|MSG_PEEK);
	if (rc==0 || !NONFATALTCPREADERR(errno)) {
#ifdef HAVE_THREAD_DEBUG
	    thread_debug("Client detected server close %d", mySocket);
#endif
	    break;


More Background:

We've implemented the --trip-times option so that iperf server will be able
to give end/end performance at the application level.  With --trip-times
the start stamp is taken from the first write vs., without, it's taken from
the first read. Also, write timestamps go into bursts so the timing is
exactly what a customer will experience.

Thanks for thoughts and comments,
Bob

[-- Attachment #2: Type: text/html, Size: 9057 bytes --]

                 reply	other threads:[~2020-08-20  3:21 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHb6LvqwXEP565Nf05fZ8PXUOF3HXj9L1e0DjAj7Cgn-hfx5Yg@mail.gmail.com \
    --to=bob.mcmahon@broadcom.com \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox