Skip to content

Conversation

@mxinden
Copy link
Member

@mxinden mxinden commented Dec 18, 2025

Would allow quinn-rs/quinn#2465 to depend on the latest mtu crate version.

@mxinden mxinden marked this pull request as ready for review December 18, 2025 15:59
Copilot AI review requested due to automatic review settings December 18, 2025 15:59
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the mtu crate version from 0.2.9 to 0.3.0, enabling external projects (specifically quinn-rs/quinn) to depend on the latest release.

  • Version bump from 0.2.9 to 0.3.0 in the mtu crate

@codecov
Copy link

codecov bot commented Dec 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.84%. Comparing base (4f38c91) to head (bb910b9).
⚠️ Report is 10 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3286      +/-   ##
==========================================
+ Coverage   93.73%   93.84%   +0.11%     
==========================================
  Files         125      124       -1     
  Lines       37134    37239     +105     
  Branches    37134    37239     +105     
==========================================
+ Hits        34807    34947     +140     
+ Misses       1470     1427      -43     
- Partials      857      865       +8     
Components Coverage Δ
neqo-common 98.48% <ø> (+0.35%) ⬆️
neqo-crypto 84.39% <ø> (+0.71%) ⬆️
neqo-http3 93.86% <ø> (+0.19%) ⬆️
neqo-qpack 94.47% <ø> (ø)
neqo-transport 94.63% <ø> (+0.01%) ⬆️
neqo-udp 82.42% <ø> (-0.42%) ⬇️
mtu 88.94% <ø> (ø)

@codspeed-hq
Copy link

codspeed-hq bot commented Dec 18, 2025

CodSpeed Performance Report

Merging #3286 will degrade performances by 4.32%

Comparing mxinden:mtu-v0.3.0 (bb910b9) with main (e74f986)1

Summary

⚡ 2 improvements
❌ 2 regressions
✅ 19 untouched

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown

Mode Benchmark BASE HEAD Change
Simulation client 891.3 ms 840.3 ms +6.07%
Simulation client 816.2 ms 668.1 ms +22.16%
Simulation wallclock-time 32.3 ms 33.3 ms -3.21%
Simulation coalesce_acked_from_zero 1000+1 entries 2.6 µs 2.7 µs -4.32%

Footnotes

  1. No successful run was found on main (819f23b) during the generation of this report, so e74f986 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@github-actions
Copy link
Contributor

Client/server transfer results

Performance differences relative to 819f23b.

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

Client vs. server (params) Mean ± σ Min Max MiB/s ± σ Δ main Δ main
neqo-neqo-newreno 95.8 ± 4.4 88.2 103.3 334.1 ± 7.3 💚 -2.4 -2.4%
neqo-quiche-cubic 192.6 ± 5.1 186.2 208.4 166.2 ± 6.3 💔 1.7 0.9%
quiche-neqo-cubic 153.6 ± 5.1 145.5 181.2 208.3 ± 6.3 💔 2.7 1.8%

Table above only shows statistically significant changes. See all results below.

All results

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

Client vs. server (params) Mean ± σ Min Max MiB/s ± σ Δ main Δ main
google-google-nopacing 444.2 ± 4.0 438.9 454.9 72.0 ± 8.0
google-neqo-cubic 272.4 ± 4.9 265.4 292.4 117.5 ± 6.5 -0.9 -0.3%
msquic-msquic-nopacing 199.3 ± 74.5 142.4 537.0 160.6 ± 0.4
msquic-neqo-cubic 198.2 ± 42.9 145.5 396.8 161.5 ± 0.7 -1.7 -0.8%
neqo-google-cubic 743.3 ± 4.6 736.2 756.2 43.0 ± 7.0 0.9 0.1%
neqo-msquic-cubic 159.6 ± 4.5 151.9 168.2 200.5 ± 7.1 0.2 0.1%
neqo-neqo-cubic 97.4 ± 4.4 88.5 107.3 328.5 ± 7.3 -1.2 -1.2%
neqo-neqo-cubic-nopacing 96.8 ± 4.0 88.9 105.3 330.5 ± 8.0 0.3 0.3%
neqo-neqo-newreno 95.8 ± 4.4 88.2 103.3 334.1 ± 7.3 💚 -2.4 -2.4%
neqo-neqo-newreno-nopacing 94.8 ± 4.2 86.8 104.6 337.5 ± 7.6 -1.0 -1.0%
neqo-quiche-cubic 192.6 ± 5.1 186.2 208.4 166.2 ± 6.3 💔 1.7 0.9%
neqo-s2n-cubic 221.1 ± 4.3 213.0 231.4 144.8 ± 7.4 0.9 0.4%
quiche-neqo-cubic 153.6 ± 5.1 145.5 181.2 208.3 ± 6.3 💔 2.7 1.8%
quiche-quiche-nopacing 141.7 ± 4.2 135.5 155.1 225.8 ± 7.6
s2n-neqo-cubic 173.8 ± 4.6 165.1 184.3 184.1 ± 7.0 0.1 0.1%
s2n-s2n-nopacing 252.1 ± 33.0 233.1 349.5 126.9 ± 1.0

Download data for profiler.firefox.com or download performance comparison data.

@github-actions
Copy link
Contributor

Benchmark results

Significant performance differences relative to 819f23b.

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: 💚 Performance has improved by -2.5413%.
       time:   [201.29 ms 201.75 ms 202.32 ms]
       thrpt:  [494.28 MiB/s 495.65 MiB/s 496.79 MiB/s]
change:
       time:   [-2.8288% -2.5413% -2.2171] (p = 0.00 < 0.05)
       thrpt:  [+2.2673% +2.6075% +2.9112]
       Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) high mild
3 (3.00%) high severe
All results
1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: 💚 Performance has improved by -2.5413%.
       time:   [201.29 ms 201.75 ms 202.32 ms]
       thrpt:  [494.28 MiB/s 495.65 MiB/s 496.79 MiB/s]
change:
       time:   [-2.8288% -2.5413% -2.2171] (p = 0.00 < 0.05)
       thrpt:  [+2.2673% +2.6075% +2.9112]
       Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) high mild
3 (3.00%) high severe
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [281.31 ms 283.26 ms 285.23 ms]
       thrpt:  [35.059 Kelem/s 35.303 Kelem/s 35.548 Kelem/s]
change:
       time:   [-0.7321% +0.2346% +1.1529] (p = 0.63 > 0.05)
       thrpt:  [-1.1397% -0.2341% +0.7375]
       No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [38.555 ms 38.721 ms 38.907 ms]
       thrpt:  [25.702   B/s 25.826   B/s 25.937   B/s]
change:
       time:   [-0.8060% -0.0839% +0.6401] (p = 0.82 > 0.05)
       thrpt:  [-0.6360% +0.0840% +0.8125]
       No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
1 (1.00%) low mild
1 (1.00%) high mild
7 (7.00%) high severe
1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: Change within noise threshold.
       time:   [206.96 ms 207.26 ms 207.57 ms]
       thrpt:  [481.76 MiB/s 482.48 MiB/s 483.18 MiB/s]
change:
       time:   [-0.9861% -0.7498% -0.5232] (p = 0.00 < 0.05)
       thrpt:  [+0.5260% +0.7555% +0.9959]
       Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
decode 4096 bytes, mask ff: No change in performance detected.
       time:   [4.4968 µs 4.5042 µs 4.5123 µs]
       change: [-0.2214% +0.1680% +0.6073] (p = 0.45 > 0.05)
       No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
2 (2.00%) high mild
4 (4.00%) high severe
decode 1048576 bytes, mask ff: No change in performance detected.
       time:   [1.1588 ms 1.1607 ms 1.1628 ms]
       change: [-0.9772% -0.0150% +0.9359] (p = 0.97 > 0.05)
       No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
11 (11.00%) high severe
decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [5.7820 µs 5.7902 µs 5.7996 µs]
       change: [-0.8503% -0.2694% +0.1930] (p = 0.35 > 0.05)
       No change in performance detected.
Found 22 outliers among 100 measurements (22.00%)
22 (22.00%) high severe
decode 1048576 bytes, mask 7f: Change within noise threshold.
       time:   [1.4759 ms 1.4783 ms 1.4808 ms]
       change: [-0.8173% -0.5876% -0.3530] (p = 0.00 < 0.05)
       Change within noise threshold.
decode 4096 bytes, mask 3f: No change in performance detected.
       time:   [5.5384 µs 5.5473 µs 5.5564 µs]
       change: [-0.1307% +0.1440% +0.4487] (p = 0.34 > 0.05)
       No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severe
decode 1048576 bytes, mask 3f: No change in performance detected.
       time:   [1.4153 ms 1.4176 ms 1.4201 ms]
       change: [-0.1828% +0.0429% +0.2662] (p = 0.71 > 0.05)
       No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
1-streams/each-1000-bytes/wallclock-time: Change within noise threshold.
       time:   [585.16 µs 589.02 µs 594.01 µs]
       change: [+0.1001% +0.9195% +1.8712] (p = 0.04 < 0.05)
       Change within noise threshold.
Found 10 outliers among 100 measurements (10.00%)
1 (1.00%) low mild
9 (9.00%) high severe
1-streams/each-1000-bytes/simulated-time: No change in performance detected.
       time:   [118.84 ms 119.08 ms 119.32 ms]
       thrpt:  [8.1847 KiB/s 8.2011 KiB/s 8.2173 KiB/s]
change:
       time:   [-0.0578% +0.2081% +0.4812] (p = 0.14 > 0.05)
       thrpt:  [-0.4789% -0.2076% +0.0579]
       No change in performance detected.
1000-streams/each-1-bytes/wallclock-time: Change within noise threshold.
       time:   [12.416 ms 12.470 ms 12.539 ms]
       change: [+0.0769% +0.6746% +1.2681] (p = 0.03 < 0.05)
       Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low mild
2 (2.00%) high mild
1 (1.00%) high severe
1000-streams/each-1-bytes/simulated-time: No change in performance detected.
       time:   [2.3285 s 2.3320 s 2.3355 s]
       thrpt:  [428.17   B/s 428.82   B/s 429.46   B/s]
change:
       time:   [-0.2315% -0.0225% +0.1977] (p = 0.84 > 0.05)
       thrpt:  [-0.1973% +0.0225% +0.2320]
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low mild
1 (1.00%) high mild
1000-streams/each-1000-bytes/wallclock-time: Change within noise threshold.
       time:   [50.007 ms 50.119 ms 50.230 ms]
       change: [-1.1111% -0.7850% -0.4640] (p = 0.00 < 0.05)
       Change within noise threshold.
1000-streams/each-1000-bytes/simulated-time: No change in performance detected.
       time:   [15.970 s 16.189 s 16.408 s]
       thrpt:  [59.516 KiB/s 60.323 KiB/s 61.150 KiB/s]
change:
       time:   [-2.0894% +0.0190% +2.1790] (p = 0.98 > 0.05)
       thrpt:  [-2.1326% -0.0190% +2.1340]
       No change in performance detected.
coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [89.367 ns 89.769 ns 90.226 ns]
       change: [-0.1154% +0.8588% +2.2250] (p = 0.15 > 0.05)
       No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
7 (7.00%) high mild
4 (4.00%) high severe
coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [106.13 ns 106.51 ns 106.89 ns]
       change: [-4.8284% -1.5247% +0.5863] (p = 0.41 > 0.05)
       No change in performance detected.
Found 15 outliers among 100 measurements (15.00%)
15 (15.00%) high severe
coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [105.39 ns 105.80 ns 106.29 ns]
       change: [-0.3215% +0.2727% +0.9401] (p = 0.39 > 0.05)
       No change in performance detected.
Found 12 outliers among 100 measurements (12.00%)
2 (2.00%) low severe
2 (2.00%) low mild
1 (1.00%) high mild
7 (7.00%) high severe
coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [90.546 ns 90.660 ns 90.797 ns]
       change: [-0.2402% +0.2951% +0.8721] (p = 0.33 > 0.05)
       No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
6 (6.00%) high mild
2 (2.00%) high severe
RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [108.88 ms 108.98 ms 109.07 ms]
       change: [-1.1982% -1.0929% -0.9831] (p = 0.00 < 0.05)
       Change within noise threshold.
sent::Packets::take_ranges: No change in performance detected.
       time:   [4.4522 µs 4.5382 µs 4.6095 µs]
       change: [-4.4071% -0.3387% +3.2796] (p = 0.88 > 0.05)
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild
transfer/pacing-false/varying-seeds/wallclock-time/run: Change within noise threshold.
       time:   [23.375 ms 23.399 ms 23.428 ms]
       change: [+0.0735% +0.2166% +0.3755] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 6 outliers among 100 measurements (6.00%)
4 (4.00%) high mild
2 (2.00%) high severe
transfer/pacing-false/varying-seeds/simulated-time/run: No change in performance detected.
       time:   [23.941 s 23.941 s 23.941 s]
       thrpt:  [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.
transfer/pacing-true/varying-seeds/wallclock-time/run: No change in performance detected.
       time:   [23.648 ms 23.679 ms 23.728 ms]
       change: [-0.4471% -0.1890% +0.0591] (p = 0.15 > 0.05)
       No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe
transfer/pacing-true/varying-seeds/simulated-time/run: No change in performance detected.
       time:   [23.676 s 23.676 s 23.676 s]
       thrpt:  [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.
transfer/pacing-false/same-seed/wallclock-time/run: Change within noise threshold.
       time:   [23.133 ms 23.159 ms 23.198 ms]
       change: [-2.4521% -2.3037% -2.1282] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
transfer/pacing-false/same-seed/simulated-time/run: No change in performance detected.
       time:   [23.941 s 23.941 s 23.941 s]
       thrpt:  [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.
transfer/pacing-true/same-seed/wallclock-time/run: Change within noise threshold.
       time:   [23.732 ms 23.750 ms 23.769 ms]
       change: [-0.9014% -0.7821% -0.6659] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 10 outliers among 100 measurements (10.00%)
4 (4.00%) low mild
5 (5.00%) high mild
1 (1.00%) high severe
transfer/pacing-true/same-seed/simulated-time/run: No change in performance detected.
       time:   [23.676 s 23.676 s 23.676 s]
       thrpt:  [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.

Download data for profiler.firefox.com or download performance comparison data.

@larseggert larseggert enabled auto-merge December 19, 2025 07:46
@larseggert larseggert added this pull request to the merge queue Dec 19, 2025
Merged via the queue into mozilla:main with commit 90260a3 Dec 19, 2025
226 of 235 checks passed
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