Branch: refs/heads/mt
Home:
https://github.com/esnet/iperf
Commit: 448ba7050ba849a5bcb0dcd0bbb64a7537394dee
https://github.com/esnet/iperf/commit/448ba7050ba849a5bcb0dcd0bbb64a7537394dee
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf.h
M src/iperf_client_api.c
M src/iperf_server_api.c
Log Message:
-----------
Add (nonfunctional) worker thread per stream.
The worker threads don't actually do anything, but with this change
we can create and destroy threads roughly right.
Towards IPERF-124.
Commit: b4c23ab08c021452ba8cdcfe2723ae9764472226
https://github.com/esnet/iperf/commit/b4c23ab08c021452ba8cdcfe2723ae9764472226
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
A config/ax_pthread.m4
M
configure.ac
M src/iperf_util.c
Log Message:
-----------
Add autoconf support for POSIX threads.
Commit: fea50ea9b683f2d7c71e535f55a2529ae898516e
https://github.com/esnet/iperf/commit/fea50ea9b683f2d7c71e535f55a2529ae898516e
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M Makefile.in
M config/config.guess
M config/config.sub
M configure
M examples/Makefile.in
M src/Makefile.in
M src/
iperf_config.h.in
Log Message:
-----------
Regen.
Commit: 6df845dff4e87fc408654ab3e9190167e3f99c01
https://github.com/esnet/iperf/commit/6df845dff4e87fc408654ab3e9190167e3f99c01
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M
configure.ac
Log Message:
-----------
Minor
configure.ac fixes (remove AC_PROG_RANLIB, only LT_INIT once, fix typo).
Commit: 42525631dec65c55277b6038c70f602ee5cabc24
https://github.com/esnet/iperf/commit/42525631dec65c55277b6038c70f602ee5cabc24
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M configure
Log Message:
-----------
Regen.
Commit: 6c573a5b2d61cac027e87571cef5d829be33e106
https://github.com/esnet/iperf/commit/6c573a5b2d61cac027e87571cef5d829be33e106
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M
configure.ac
Log Message:
-----------
Add line for Slack integration test.
Commit: 880f4fc438bd507b3f1968774c46970bb8a74aa6
https://github.com/esnet/iperf/commit/880f4fc438bd507b3f1968774c46970bb8a74aa6
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M
configure.ac
Log Message:
-----------
Delete line for testing Slack integration.
Commit: 508e616508f877328968f80c0e0fd62fd0946571
https://github.com/esnet/iperf/commit/508e616508f877328968f80c0e0fd62fd0946571
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M
configure.ac
Log Message:
-----------
Third time's a charm...
Commit: 875977628a623dadaec65a8d1467f69d80bd2bb4
https://github.com/esnet/iperf/commit/875977628a623dadaec65a8d1467f69d80bd2bb4
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_api.h
M src/iperf_client_api.c
M src/iperf_error.c
M src/iperf_server_api.c
Log Message:
-----------
Improve error handling.
While here, also fix a place where we forgot to join after cancel.
Commit: 0ce53273bbbd85d2e4570b6bf8532945d833d0dd
https://github.com/esnet/iperf/commit/0ce53273bbbd85d2e4570b6bf8532945d833d0dd
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_api.h
M src/iperf_client_api.c
M src/iperf_error.c
M src/iperf_server_api.c
Log Message:
-----------
Improve error handling around thread attribute calls.
Commit: 3801837138620ad3a34a2875af220f90fc08fd71
https://github.com/esnet/iperf/commit/3801837138620ad3a34a2875af220f90fc08fd71
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf.h
M src/iperf_api.c
M src/iperf_client_api.c
M src/iperf_error.c
M src/iperf_server_api.c
Log Message:
-----------
Locking around output operations. Allow threads to exit gracefully.
Commit: 89b4fbe854d24866488f0d2f3a3c06f091483d97
https://github.com/esnet/iperf/commit/89b4fbe854d24866488f0d2f3a3c06f091483d97
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_api.c
M src/iperf_api.h
M src/iperf_client_api.c
M src/iperf_server_api.c
Log Message:
-----------
Initial version of multi-threaded writers.
* Create iperf_send_mt and iperf_recv_mt, the multi-threaded versions
of network I/O functions. These handle a single connection only and
do not attempt to coordinate timing (for flow control) with any
other threads.
* Make client and server thread functions call the new multi-threaded
network I/O functions.
* Remove all network I/O for the test streams from the main thread.
* fd_set objects in test object only apply to sockets used by the main
thread (not the test streams in the worker threads).
Outstanding issues:
* No locking of shared data structures at this point. Correctness may
be compromised at this point.
* Worker threads on the sender side will tend to busy-wait because
they do not attempt to sleep while attempting to pace themeselves.
* No support (for now) for ending conditions other than time-based
(packet-based and byte-based don't work).
Commit: 1e1f1a168d855b75f1c3d8bebf09b4de12118d42
https://github.com/esnet/iperf/commit/1e1f1a168d855b75f1c3d8bebf09b4de12118d42
Author: Sarah Larsen <
swla...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf.h
M src/iperf_api.c
M src/iperf_api.h
Log Message:
-----------
Add atomic_iperf_size_t for atomic (thread-safe) operations
Commit: 37a29e60dfda007e5250625dd4fd90c65a5f8214
https://github.com/esnet/iperf/commit/37a29e60dfda007e5250625dd4fd90c65a5f8214
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_client_api.c
M src/iperf_server_api.c
Log Message:
-----------
Make -n / -k options work correctly.
We need to get the threads to exit when the ending conditions
for -n / -k are reached, but we weren't doing that.
While here, clean up some not-very-often-used error case code
and pet copyright dates.
Fixes IPERF-151.
Commit: bf0fd9137d8761fdc76d1a32bda9bef418e901b1
https://github.com/esnet/iperf/commit/bf0fd9137d8761fdc76d1a32bda9bef418e901b1
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M
configure.ac
M src/iperf.h
M src/iperf_api.h
Log Message:
-----------
Add autoconf test for stdatomic
Also do conditional compilation for stdatomic and pthread.
Commit: a3435330b895d140421f1322ef5fee59ab9f5643
https://github.com/esnet/iperf/commit/a3435330b895d140421f1322ef5fee59ab9f5643
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M configure
M src/
iperf_config.h.in
Log Message:
-----------
Regen.
Commit: 4c7e1c95bf2942acc96b1d077483bea6d92b88a3
https://github.com/esnet/iperf/commit/4c7e1c95bf2942acc96b1d077483bea6d92b88a3
Author: Bruce A. Mah <
bm...@kitchenlab.org>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf.h
M src/iperf_api.h
M src/main.c
Log Message:
-----------
Fix build on CentOS 7 / x86_64.
The issue is that the default compiler on CentOS 7 (and presumably
RHEL 7) is an old GCC that's too old to support atomic types.
In this case we attempt to approximate an atomic 64-bit type with
a normal 64-bit integer, and warn at runtime if the system doesn't
support lock-free operations with this data type.
This has been compile-tested and lightly run-tested on CentOS 7
x86_64. It might not work well with ancient non-GCC compilers or
32-bit hosts.
Commit: 31b09bbcae2105d18bc2d137ff037b11096c0527
https://github.com/esnet/iperf/commit/31b09bbcae2105d18bc2d137ff037b11096c0527
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_client_api.c
M src/iperf_server_api.c
M src/net.c
Log Message:
-----------
Don't set O_NONBLOCK on sockets used for tests.
This fixes a problem where every thread would essentially burn
a CPU core busy-waiting, when it didn't need to. It's believed
that this excess CPU usage might contribute to packet loss and
poor performance.
Non-blocking sockets were a necessity with the original single-
thread process model of iperf3, in order to allow for
concurrency between different test streams. With multiple
threads, this is no longer necesary (it's perfectly fine for a
thread to block on I/O, as it only services a single test stream
and won't affect any others).
Problem pointed out by @bltierney. Code review by @swlars.
Fixes IPERF-177.
Commit: 4d6ab00a14c07802a69dd68a8ab1629d1d61e9eb
https://github.com/esnet/iperf/commit/4d6ab00a14c07802a69dd68a8ab1629d1d61e9eb
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf3.1
Log Message:
-----------
Update description of -P option for multithreading.
Commit: 70aece398e17333c233f24e931c99d678d8d8848
https://github.com/esnet/iperf/commit/70aece398e17333c233f24e931c99d678d8d8848
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_client_api.c
M src/iperf_server_api.c
Log Message:
-----------
Fix a bug related to idle timeouts on the test receiver.
iperf3 implements a limit intended to allow the receiving side of a
test to abort a test in progress if no data has been received for a
certain length of time. This time limit is configured with the
--rcv-timeout command-line option.
The original implementation didn't work correctly with multi-threading
because the code that implemented the limit had no visibility into the
network I/O activity handled by other threads. The code has been
restructured to make this work correctly, by watching the total number
of blocks transferred in the test and using that to determine progress
(or lack thereof).
A minor change was also made to allow worker threads to be cancelled,
even if they were blocked waiting for network I/O. While necessary for
the testing protocol for this bug, this change might also improve the
correctness of thread handling around the end of tests.
Fixes IPERF-178.
Commit: 743cf8f2a86c733f5087db96da295907fa5878c7
https://github.com/esnet/iperf/commit/743cf8f2a86c733f5087db96da295907fa5878c7
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_client_api.c
M src/iperf_server_api.c
Log Message:
-----------
Make thread shutdown more tolerant.
We now handle the case where the worker threads exited on their own
accord before the main thread had a chance to cancel them.
While here, tweaked some of the error messages.
Fixes IPERF-179.
Commit: 693ec9391d963813ca8a900cda8e94688fcda9b4
https://github.com/esnet/iperf/commit/693ec9391d963813ca8a900cda8e94688fcda9b4
Author: Sarah Larsen <
swla...@grobb3-dev-5.es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M src/iperf_client_api.c
M src/iperf_server_api.c
Log Message:
-----------
Fix debug level
Commit: 76274c4815f4f083e0f5c39ab26733df010a332c
https://github.com/esnet/iperf/commit/76274c4815f4f083e0f5c39ab26733df010a332c
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M RELNOTES.md
Log Message:
-----------
Add accumulated release notes from prior iperf-mt public beta releases.
Commit: 4811aeb9bb7e16de69188b4d926a4221da8cc6a7
https://github.com/esnet/iperf/commit/4811aeb9bb7e16de69188b4d926a4221da8cc6a7
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M
configure.ac
Log Message:
-----------
Version update for mt branch.
Commit: ce6fbfcdb2ce7dc15a3b4ea8482bc3eb8ded0cc8
https://github.com/esnet/iperf/commit/ce6fbfcdb2ce7dc15a3b4ea8482bc3eb8ded0cc8
Author: Bruce A. Mah <
bm...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M config/config.guess
M config/config.sub
M configure
Log Message:
-----------
Regen.
Commit: 9cc8e1fa202ba4fb4ac120f223384e07eaf52048
https://github.com/esnet/iperf/commit/9cc8e1fa202ba4fb4ac120f223384e07eaf52048
Author: Sarah Larsen <
swla...@es.net>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M RELNOTES.md
Log Message:
-----------
Add dates to RELNOTES.md for iperf-3.15-mt-beta1.
Compare:
https://github.com/esnet/iperf/compare/c605dce02cc6...9cc8e1fa202b