Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplifcation of ECN tests #2498

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

martinthomson
Copy link
Member

The main blocker here is a function pointer comparison, which has a new lint and a new function in 1.85. This moves MSRV to 1.85, which is still too new, so marking this as a draft.

These used function pointers in odd ways previously.
This won't be good for merging until we get to Rust 1.85 MSRV, which is
still a bit new.  That's unfortunate.
Copy link

Failed Interop Tests

QUIC Interop Runner, client vs. server, differences relative to e660b0b.

neqo-latest as client

neqo-latest as server

All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Copy link

Benchmark results

Performance differences relative to e660b0b.

decode 4096 bytes, mask ff: No change in performance detected.
       time:   [11.745 µs 11.775 µs 11.812 µs]
       change: [-0.4253% +0.0233% +0.4836%] (p = 0.92 > 0.05)

Found 11 outliers among 100 measurements (11.00%)
4 (4.00%) low mild
7 (7.00%) high severe

decode 1048576 bytes, mask ff: No change in performance detected.
       time:   [2.8893 ms 2.8969 ms 2.9062 ms]
       change: [-0.7287% -0.2505% +0.2387%] (p = 0.31 > 0.05)

Found 8 outliers among 100 measurements (8.00%)
1 (1.00%) low mild
1 (1.00%) high mild
6 (6.00%) high severe

decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [19.628 µs 19.678 µs 19.734 µs]
       change: [-0.4527% +0.1018% +0.7599%] (p = 0.76 > 0.05)

Found 18 outliers among 100 measurements (18.00%)
2 (2.00%) low severe
2 (2.00%) low mild
14 (14.00%) high severe

decode 1048576 bytes, mask 7f: No change in performance detected.
       time:   [4.7036 ms 4.7151 ms 4.7279 ms]
       change: [-0.3422% +0.0102% +0.3869%] (p = 0.95 > 0.05)

Found 14 outliers among 100 measurements (14.00%)
1 (1.00%) high mild
13 (13.00%) high severe

decode 4096 bytes, mask 3f: No change in performance detected.
       time:   [6.1867 µs 6.2028 µs 6.2275 µs]
       change: [-0.7738% -0.1939% +0.2513%] (p = 0.51 > 0.05)

Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe

decode 1048576 bytes, mask 3f: No change in performance detected.
       time:   [2.1078 ms 2.1147 ms 2.1230 ms]
       change: [-0.3979% +0.0638% +0.5905%] (p = 0.83 > 0.05)

Found 13 outliers among 100 measurements (13.00%)
1 (1.00%) low severe
3 (3.00%) low mild
9 (9.00%) high severe

1 streams of 1 bytes/multistream: No change in performance detected.
       time:   [68.169 µs 68.750 µs 69.797 µs]
       change: [-0.2962% +0.6083% +2.0746%] (p = 0.54 > 0.05)

Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severe

1000 streams of 1 bytes/multistream: No change in performance detected.
       time:   [24.363 ms 24.397 ms 24.432 ms]
       change: [-0.3347% -0.1413% +0.0458%] (p = 0.16 > 0.05)
10000 streams of 1 bytes/multistream: No change in performance detected.
       time:   [1.6451 s 1.6468 s 1.6486 s]
       change: [-0.0838% +0.0672% +0.2227%] (p = 0.40 > 0.05)

Found 32 outliers among 100 measurements (32.00%)
10 (10.00%) low severe
7 (7.00%) low mild
8 (8.00%) high mild
7 (7.00%) high severe

1 streams of 1000 bytes/multistream: No change in performance detected.
       time:   [69.581 µs 70.131 µs 71.125 µs]
       change: [-0.5761% +0.2646% +1.7196%] (p = 0.78 > 0.05)

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe

100 streams of 1000 bytes/multistream: Change within noise threshold.
       time:   [3.2346 ms 3.2408 ms 3.2474 ms]
       change: [-0.6078% -0.3278% -0.0411%] (p = 0.02 < 0.05)

Found 19 outliers among 100 measurements (19.00%)
19 (19.00%) high severe

1000 streams of 1000 bytes/multistream: Change within noise threshold.
       time:   [137.80 ms 137.87 ms 137.94 ms]
       change: [-0.1516% -0.0798% -0.0064%] (p = 0.03 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [92.066 ns 92.380 ns 92.700 ns]
       change: [-0.4251% +0.0984% +0.6771%] (p = 0.75 > 0.05)

Found 8 outliers among 100 measurements (8.00%)
8 (8.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [109.76 ns 110.08 ns 110.44 ns]
       change: [-0.5274% -0.0494% +0.4326%] (p = 0.85 > 0.05)

Found 23 outliers among 100 measurements (23.00%)
2 (2.00%) low severe
3 (3.00%) low mild
5 (5.00%) high mild
13 (13.00%) high severe

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [109.72 ns 110.27 ns 110.90 ns]
       change: [-0.0541% +0.5179% +1.2142%] (p = 0.13 > 0.05)

Found 17 outliers among 100 measurements (17.00%)
6 (6.00%) low severe
1 (1.00%) low mild
2 (2.00%) high mild
8 (8.00%) high severe

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [91.743 ns 91.783 ns 91.831 ns]
       change: [-1.1088% -0.0263% +0.9753%] (p = 0.97 > 0.05)

Found 15 outliers among 100 measurements (15.00%)
4 (4.00%) high mild
11 (11.00%) high severe

RxStreamOrderer::inbound_frame(): No change in performance detected.
       time:   [115.37 ms 115.43 ms 115.48 ms]
       change: [-0.0493% +0.0097% +0.0667%] (p = 0.75 > 0.05)

Found 11 outliers among 100 measurements (11.00%)
4 (4.00%) low mild
7 (7.00%) high mild

SentPackets::take_ranges: No change in performance detected.
       time:   [5.2332 µs 5.3482 µs 5.4708 µs]
       change: [-4.8288% -1.1112% +2.4280%] (p = 0.56 > 0.05)

Found 6 outliers among 100 measurements (6.00%)
5 (5.00%) high mild
1 (1.00%) high severe

transfer/pacing-false/varying-seeds: Change within noise threshold.
       time:   [34.401 ms 34.468 ms 34.535 ms]
       change: [-2.5187% -2.2560% -2.0002%] (p = 0.00 < 0.05)
transfer/pacing-true/varying-seeds: Change within noise threshold.
       time:   [34.453 ms 34.512 ms 34.571 ms]
       change: [-2.1220% -1.8846% -1.6320%] (p = 0.00 < 0.05)
transfer/pacing-false/same-seed: Change within noise threshold.
       time:   [34.736 ms 34.798 ms 34.860 ms]
       change: [-2.1090% -1.8841% -1.6485%] (p = 0.00 < 0.05)

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild

transfer/pacing-true/same-seed: Change within noise threshold.
       time:   [34.990 ms 35.042 ms 35.094 ms]
       change: [-1.8233% -1.6310% -1.4211%] (p = 0.00 < 0.05)

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [2.1962 s 2.2044 s 2.2128 s]
       thrpt:  [45.192 MiB/s 45.363 MiB/s 45.534 MiB/s]
change:
       time:   [-0.7765% -0.2961% +0.1677%] (p = 0.24 > 0.05)
       thrpt:  [-0.1675% +0.2970% +0.7826%]
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [388.41 ms 390.40 ms 392.44 ms]
       thrpt:  [25.481 Kelem/s 25.615 Kelem/s 25.746 Kelem/s]
change:
       time:   [-0.9440% -0.2046% +0.5182%] (p = 0.58 > 0.05)
       thrpt:  [-0.5155% +0.2050% +0.9530%]

Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild

1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [27.410 ms 28.083 ms 28.760 ms]
       thrpt:  [34.770  elem/s 35.609  elem/s 36.483  elem/s]
change:
       time:   [-1.4644% +1.9296% +5.3585%] (p = 0.27 > 0.05)
       thrpt:  [-5.0860% -1.8931% +1.4861%]
1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: No change in performance detected.
       time:   [3.1612 s 3.1806 s 3.2010 s]
       thrpt:  [31.241 MiB/s 31.441 MiB/s 31.634 MiB/s]
change:
       time:   [-1.4436% -0.6144% +0.2302%] (p = 0.17 > 0.05)
       thrpt:  [-0.2297% +0.6182% +1.4647%]

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild

Client/server transfer results

Performance differences relative to e660b0b.

Transfer of 33554432 bytes over loopback, 30 runs. All unit-less numbers are in milliseconds.

Client Server CC Pacing Mean ± σ Min Max Δ main Δ main
neqo neqo reno on 540.5 ± 116.4 457.8 1075.6 -19.8 -0.9%
neqo neqo reno 557.7 ± 131.1 448.9 1039.4 -23.4 -1.0%
neqo neqo cubic on 532.2 ± 39.3 477.4 676.4 -16.5 -0.8%
neqo neqo cubic 535.4 ± 42.1 484.7 656.5 16.8 0.8%
google neqo reno on 915.9 ± 94.2 677.6 1016.3 2.2 0.1%
google neqo reno 921.9 ± 116.8 652.5 1172.8 15.9 0.4%
google neqo cubic on 904.8 ± 97.4 663.5 1040.4 6.6 0.2%
google neqo cubic 902.9 ± 92.1 718.8 1109.7 8.0 0.2%
google google 550.5 ± 17.7 532.9 593.7 0.7 0.0%
neqo msquic reno on 228.4 ± 30.5 203.7 364.0 -19.3 -2.0%
neqo msquic reno 248.7 ± 66.9 202.6 502.6 11.0 1.1%
neqo msquic cubic on 225.0 ± 16.1 205.2 285.5 -2.7 -0.3%
neqo msquic cubic 234.2 ± 43.8 203.8 400.6 7.0 0.8%
msquic msquic 118.0 ± 19.4 98.9 180.9 -14.9 -3.0%

⬇️ Download logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant