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

feat: Option for no zero-len CIDs for client #2171

Merged
merged 6 commits into from
Nov 11, 2024

Conversation

larseggert
Copy link
Collaborator

@larseggert larseggert commented Oct 14, 2024

No description provided.

They break the upcoming QNS migration tests.
Copy link

codecov bot commented Oct 14, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.39%. Comparing base (5d8651a) to head (5d95fc7).
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2171   +/-   ##
=======================================
  Coverage   95.39%   95.39%           
=======================================
  Files         112      112           
  Lines       36449    36449           
=======================================
  Hits        34770    34770           
  Misses       1679     1679           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented Oct 14, 2024

Failed Interop Tests

QUIC Interop Runner, client vs. server

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

github-actions bot commented Oct 14, 2024

Benchmark results

Performance differences relative to 9b5ec71.

coalesce_acked_from_zero 1+1 entries: Change within noise threshold.
       time:   [98.792 ns 99.158 ns 99.509 ns]
       change: [-1.0922% -0.6307% -0.1840%] (p = 0.01 < 0.05)

Found 13 outliers among 100 measurements (13.00%)
10 (10.00%) high mild
3 (3.00%) high severe

coalesce_acked_from_zero 3+1 entries: Change within noise threshold.
       time:   [116.50 ns 116.84 ns 117.20 ns]
       change: [-1.7612% -1.2663% -0.8127%] (p = 0.00 < 0.05)

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

coalesce_acked_from_zero 10+1 entries: Change within noise threshold.
       time:   [116.22 ns 116.69 ns 117.26 ns]
       change: [-1.0836% -0.6186% -0.1831%] (p = 0.01 < 0.05)

Found 14 outliers among 100 measurements (14.00%)
4 (4.00%) low severe
2 (2.00%) low mild
8 (8.00%) high severe

coalesce_acked_from_zero 1000+1 entries: Change within noise threshold.
       time:   [97.433 ns 97.602 ns 97.800 ns]
       change: [-2.0630% -1.0329% -0.0286%] (p = 0.05 < 0.05)

Found 9 outliers among 100 measurements (9.00%)
3 (3.00%) high mild
6 (6.00%) high severe

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [111.57 ms 111.62 ms 111.66 ms]
       change: [-0.3211% -0.2526% -0.1854%] (p = 0.00 < 0.05)

Found 9 outliers among 100 measurements (9.00%)
4 (4.00%) low mild
5 (5.00%) high mild

transfer/pacing-false/varying-seeds: No change in performance detected.
       time:   [25.902 ms 26.879 ms 27.872 ms]
       change: [-6.7639% -1.6579% +3.4327%] (p = 0.53 > 0.05)

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

transfer/pacing-true/varying-seeds: No change in performance detected.
       time:   [33.774 ms 35.458 ms 37.156 ms]
       change: [-10.553% -4.7185% +1.7720%] (p = 0.15 > 0.05)

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

transfer/pacing-false/same-seed: No change in performance detected.
       time:   [25.323 ms 26.032 ms 26.759 ms]
       change: [-2.9228% +1.0946% +5.4403%] (p = 0.61 > 0.05)

Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) low mild
4 (4.00%) high mild

transfer/pacing-true/same-seed: No change in performance detected.
       time:   [38.558 ms 40.437 ms 42.362 ms]
       change: [-9.9420% -4.2311% +1.9678%] (p = 0.19 > 0.05)
1-conn/1-100mb-resp (aka. Download)/client: No change in performance detected.
       time:   [113.55 ms 114.00 ms 114.44 ms]
       thrpt:  [873.85 MiB/s 877.16 MiB/s 880.70 MiB/s]
change:
       time:   [-16.992% -6.2679% +0.4475%] (p = 0.41 > 0.05)
       thrpt:  [-0.4455% +6.6871% +20.470%]

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

1-conn/10_000-parallel-1b-resp (aka. RPS)/client: 💔 Performance has regressed.
       time:   [317.06 ms 320.56 ms 324.00 ms]
       thrpt:  [30.864 Kelem/s 31.196 Kelem/s 31.540 Kelem/s]
change:
       time:   [+1.0641% +2.6348% +4.1806%] (p = 0.00 < 0.05)
       thrpt:  [-4.0129% -2.5672% -1.0529%]
1-conn/1-1b-resp (aka. HPS)/client: No change in performance detected.
       time:   [33.693 ms 33.858 ms 34.034 ms]
       thrpt:  [29.382  elem/s 29.535  elem/s 29.680  elem/s]
change:
       time:   [-1.4548% -0.5765% +0.2634%] (p = 0.20 > 0.05)
       thrpt:  [-0.2627% +0.5799% +1.4763%]

Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) low mild
4 (4.00%) high severe

Client/server transfer results

Transfer of 33554432 bytes over loopback.

Client Server CC Pacing Mean [ms] Min [ms] Max [ms] Relative
msquic msquic 116.6 ± 32.3 91.2 200.2 1.00
neqo msquic reno on 216.6 ± 12.5 202.8 236.2 1.00
neqo msquic reno 217.0 ± 10.3 209.0 242.7 1.00
neqo msquic cubic on 227.9 ± 14.3 208.7 253.3 1.00
neqo msquic cubic 266.6 ± 86.5 208.4 483.8 1.00
msquic neqo reno on 117.2 ± 65.6 81.6 336.2 1.00
msquic neqo reno 122.4 ± 60.1 76.4 330.4 1.00
msquic neqo cubic on 129.6 ± 57.5 81.1 332.0 1.00
msquic neqo cubic 113.3 ± 60.4 82.2 326.2 1.00
neqo neqo reno on 207.2 ± 87.7 124.2 409.2 1.00
neqo neqo reno 201.1 ± 87.7 131.4 398.1 1.00
neqo neqo cubic on 191.9 ± 73.9 125.9 422.9 1.00
neqo neqo cubic 174.8 ± 73.7 127.8 380.7 1.00

⬇️ Download logs

@martinthomson
Copy link
Member

Can this be conditional behaviour? That is, can we add a flag to enable/disable, defaulting to zero length, but turning it on for the migration test?

@larseggert
Copy link
Collaborator Author

I can make this a flag, good suggestion.

@larseggert larseggert changed the title feat: No zero-len CIDs for client feat: Option for no zero-len CIDs for client Oct 14, 2024
@larseggert larseggert marked this pull request as draft October 15, 2024 12:11
@larseggert
Copy link
Collaborator Author

It looks like we don't need this PR, but the QNS connectionmigration test is failing on #2170 due to https://gitlab.com/wireshark/wireshark/-/issues/20165. Waiting for this to resolve.

@larseggert
Copy link
Collaborator Author

We don't need this for migration. Left in the option, but not turning it on by default for certain tests.

@larseggert larseggert marked this pull request as ready for review November 8, 2024 17:08
neqo-bin/src/client/mod.rs Show resolved Hide resolved
@larseggert larseggert enabled auto-merge November 11, 2024 13:24
@larseggert larseggert added this pull request to the merge queue Nov 11, 2024
Merged via the queue into mozilla:main with commit f11ce06 Nov 11, 2024
63 of 66 checks passed
@larseggert larseggert deleted the feat-client-nonzero-cid branch November 11, 2024 13:36
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.

2 participants