fix(bin): handle EIO
Fixes https://github.com/mozilla/neqo/issues/3032.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 93.41%. Comparing base (11dec9b) to head (f20a8ff).
:warning: Report is 10 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #3130 +/- ##
==========================================
- Coverage 93.47% 93.41% -0.07%
==========================================
Files 125 125
Lines 36393 36393
Branches 36393 36393
==========================================
- Hits 34020 33998 -22
- Misses 1528 1551 +23
+ Partials 845 844 -1
| Components | Coverage Δ | |
|---|---|---|
| neqo-common | 97.36% <ø> (ø) |
|
| neqo-crypto | 83.25% <ø> (-0.48%) |
:arrow_down: |
| neqo-http3 | 93.30% <ø> (ø) |
|
| neqo-qpack | 94.29% <ø> (ø) |
|
| neqo-transport | 94.51% <ø> (-0.07%) |
:arrow_down: |
| neqo-udp | 79.42% <ø> (ø) |
|
| mtu | 85.76% <ø> (ø) |
CodSpeed Performance Report
Merging #3130 will improve performances by 12.18%
Comparing mxinden:eio (f20a8ff) with main (e7be019)
Summary
⚡ 3 improvements
✅ 20 untouched
Benchmarks breakdown
| Mode | Benchmark | BASE |
HEAD |
Change | |
|---|---|---|---|---|---|
| ⚡ | Simulation | client |
858.7 ms | 765.4 ms | +12.18% |
| ⚡ | Simulation | wallclock-time |
35.2 ms | 32.9 ms | +6.84% |
| ⚡ | Simulation | run |
167.2 ms | 158.4 ms | +5.56% |
Bencher Report
| Branch | eio |
| Testbed | On-prem |
Click to view all benchmark results
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| google vs. neqo (cubic, paced) | 📈 view plot 🚷 view threshold | 280.95 ms(+0.90%)Baseline: 278.45 ms | 282.92 ms (99.30%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| msquic vs. neqo (cubic, paced) | 📈 view plot 🚷 view threshold | 225.07 ms(+12.16%)Baseline: 200.66 ms | 238.90 ms (94.21%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. google (cubic, paced) | 📈 view plot 🚷 view threshold | 777.37 ms(+2.18%)Baseline: 760.78 ms | 778.26 ms (99.89%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. msquic (cubic, paced) | 📈 view plot 🚷 view threshold | 156.66 ms(-0.64%)Baseline: 157.67 ms | 160.43 ms (97.65%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. neqo (cubic) | 📈 view plot 🚷 view threshold | 94.69 ms(+3.01%)Baseline: 91.92 ms | 97.46 ms (97.16%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. neqo (cubic, paced) | 📈 view plot 🚷 view threshold | 94.32 ms(+1.13%)Baseline: 93.26 ms | 98.69 ms (95.57%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. neqo (reno) | 📈 view plot 🚷 view threshold | 95.83 ms(+4.30%)Baseline: 91.88 ms | 97.23 ms (98.55%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. neqo (reno, paced) | 📈 view plot 🚷 view threshold | 94.79 ms(+1.81%)Baseline: 93.11 ms | 98.26 ms (96.47%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. quiche (cubic, paced) | 📈 view plot 🚷 view threshold | 193.17 ms(-0.23%)Baseline: 193.62 ms | 196.90 ms (98.10%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| neqo vs. s2n (cubic, paced) | 📈 view plot 🚷 view threshold | 222.67 ms(+0.68%)Baseline: 221.18 ms | 224.16 ms (99.34%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| quiche vs. neqo (cubic, paced) | 📈 view plot 🚷 view threshold | 152.35 ms(-0.60%)Baseline: 153.27 ms | 158.49 ms (96.13%) |
| Benchmark | Latency | Benchmark Result milliseconds (ms) (Result Δ%) | Upper Boundary milliseconds (ms) (Limit %) |
|---|---|---|---|
| s2n vs. neqo (cubic, paced) | 📈 view plot 🚷 view threshold | 174.50 ms(+0.48%)Baseline: 173.67 ms | 177.85 ms (98.12%) |
@larseggert have you seen this CI failure in mtu before?
=================================================================
==8681==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 152 byte(s) in 1 object(s) allocated from:
#0 0x000105d4d86c in malloc+0x6c (librustc-nightly_rt.asan.dylib:arm64+0x5186c)
#1 0x0001905339d4 in _malloc_type_malloc_outlined+0x60 (libsystem_malloc.dylib:arm64+0x1d9d4)
#2 0x000190721c4c in dyld::ThreadLocalVariables::instantiateVariable(dyld::ThreadLocalVariables::Thunk const&)+0x34 (libdyld.dylib:arm64+0x3c4c)
#3 0x00019072115c in _tlv_get_addr+0x64 (libdyld.dylib:arm64+0x315c)
#4 0x000104bd42fc in _RNvNtNtNtCsaUeK9K0zDRL_3std6thread7current2id3get+0x14 (mtu-24d5ed0aa1fa0db8:arm64+0x1003742fc)
#5 0x000104bd42d0 in _RNvNtNtNtCsaUeK9K0zDRL_3std6thread7current2id11get_or_initB7_+0x8 (mtu-24d5ed0aa1fa0db8:arm64+0x1003742d0)
#6 0x000104c05b9c in _RNvNtNtCsaUeK9K0zDRL_3std6thread7current10current_idB5_+0x8 (mtu-24d5ed0aa1fa0db8:arm64+0x1003a5b9c)
#7 0x000104bc18c8 in _RNvNtCsaUeK9K0zDRL_3std2rt4init+0x20 (mtu-24d5ed0aa1fa0db8:arm64+0x1003618c8)
#8 0x000104bbae78 in _RNCNvNtCsaUeK9K0zDRL_3std2rt19lang_start_internal0B5_+0x1c0 (mtu-24d5ed0aa1fa0db8:arm64+0x10035ae78)
#9 0x000104adfeb0 in _RINvNvNtCsaUeK9K0zDRL_3std9panicking12catch_unwind7do_callNCNvNtB6_2rt19lang_start_internal0iEB6_+0x184 (mtu-24d5ed0aa1fa0db8:arm64+0x10027feb0)
#10 0x000104af6ddc in __rust_try+0x1c (mtu-24d5ed0aa1fa0db8:arm64+0x100296ddc)
#11 0x000104ade8e0 in _RINvNtCsaUeK9K0zDRL_3std9panicking12catch_unwindiNCNvNtB4_2rt19lang_start_internal0EB4_+0x16c (mtu-24d5ed0aa1fa0db8:arm64+0x10027e8e0)
#12 0x000104b00754 in _RINvNtCsaUeK9K0zDRL_3std5panic12catch_unwindNCNvNtB4_2rt19lang_start_internal0iEB4_+0x8 (mtu-24d5ed0aa1fa0db8:arm64+0x1002a0754)
#13 0x000104bc17d8 in _RNvNtCsaUeK9K0zDRL_3std2rt19lang_start_internal+0x1a0 (mtu-24d5ed0aa1fa0db8:arm64+0x1003617d8)
#14 0x000104862224 in _RINvNtCsaUeK9K0zDRL_3std2rt10lang_startuECs4yXop3HQnl2_3mtu rt.rs:205
#15 0x00010486e634 in main+0x20 (mtu-24d5ed0aa1fa0db8:arm64+0x10000e634)
#16 0x000190376b94 (<unknown module>)
-----------------------------------------------------
Suppressions used:
count bytes template
3 120 fetchInitializingClassList
-----------------------------------------------------
SUMMARY: AddressSanitizer: 152 byte(s) leaked in 1 allocation(s).
error: test failed, to rerun pass `-p mtu --lib`
https://github.com/mozilla/neqo/actions/runs/19595253367/job/56119038615?pr=3130
Failed Interop Tests
QUIC Interop Runner, client vs. server, differences relative to 11dec9b1745bcdc948ab580499d894d14adbdb9a.
neqo-latest as client
- neqo-latest vs. aioquic: A :warning:L1 C1
- neqo-latest vs. go-x-net: A BP BA
- neqo-latest vs. haproxy: :warning:M A :warning:L1 C1 BP BA
- neqo-latest vs. kwik: :rocket:~~S~~ BP BA
- neqo-latest vs. linuxquic: A :warning:L1
- neqo-latest vs. lsquic: L1 C1
- neqo-latest vs. msquic: :rocket:~~R~~ :warning:Z A L1 C1
- neqo-latest vs. mvfst: A L1 C1 :warning:BA
- neqo-latest vs. nginx: A :rocket:~~L1~~ C1 BP BA
- neqo-latest vs. ngtcp2: A :warning:C1 CM
- neqo-latest vs. picoquic: :warning:R Z A L1 C1
- neqo-latest vs. quic-go: A :warning:C1
- neqo-latest vs. quiche: A L1 :rocket:~~C1~~ BP BA
- neqo-latest vs. quinn: A :warning:C1
- neqo-latest vs. s2n-quic: A :warning:C1 BP BA CM
- neqo-latest vs. tquic: S A :rocket:~~L1 C1~~ BP BA
- neqo-latest vs. xquic: run cancelled after 20 min
neqo-latest as server
- aioquic vs. neqo-latest: :warning:C1 CM
- go-x-net vs. neqo-latest: CM
- kwik vs. neqo-latest: BP BA CM
- linuxquic vs. neqo-latest: :rocket:~~BP~~ :warning:BA
- msquic vs. neqo-latest: :rocket:~~BP~~ CM
- mvfst vs. neqo-latest: :warning:M Z A L1 C1 CM
- openssl vs. neqo-latest: LR M A CM
- quic-go vs. neqo-latest: :rocket:~~BA~~ CM
- quiche vs. neqo-latest: CM
- quinn vs. neqo-latest: :rocket:~~C1~~ :warning:L1 V2 CM
- s2n-quic vs. neqo-latest: CM
- tquic vs. neqo-latest: CM
- xquic vs. neqo-latest: M CM
All results
Succeeded Interop Tests
QUIC Interop Runner, client vs. server
neqo-latest as client
- neqo-latest vs. aioquic: H DC LR C20 M S R Z 3 B U :warning:L1 L2 :warning:C1 C2 6 V2 BP BA
- neqo-latest vs. go-x-net: H DC LR M B U L2 C2 6
- neqo-latest vs. haproxy: H DC LR C20 :warning:M S R Z 3 B U :warning:L1 L2 :warning:C1 C2 6 V2
- neqo-latest vs. kwik: H DC LR C20 M :rocket:~~S~~ R Z 3 B U A L1 L2 C1 C2 6 V2
- neqo-latest vs. linuxquic: H DC LR C20 M S R Z 3 B U E :warning:L1 L2 C1 C2 6 V2 BP BA CM
- neqo-latest vs. lsquic: H DC LR C20 M S R Z 3 B U E A L2 C2 6 V2 BP BA CM
- neqo-latest vs. msquic: H DC LR C20 M S :warning:Z :rocket:~~R~~ B U L2 C2 6 V2 BP BA
- neqo-latest vs. mvfst: H DC LR M R Z 3 B U L2 C2 6 BP :warning:BA
- neqo-latest vs. neqo: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 BP BA CM
- neqo-latest vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 BP BA CM
- neqo-latest vs. nginx: H DC LR C20 M S R Z 3 B U :rocket:~~L1~~ L2 C2 6
- neqo-latest vs. ngtcp2: H DC LR C20 M S R Z 3 B U E L1 L2 :warning:C1 C2 6 V2 BP BA
- neqo-latest vs. picoquic: H DC LR C20 M S :warning:R 3 B U E L2 C2 6 V2 BP BA
- neqo-latest vs. quic-go: H DC LR C20 M S R Z 3 B U L1 L2 :warning:C1 C2 6 BP BA
- neqo-latest vs. quiche: H DC LR C20 M S R Z 3 B U L2 :rocket:~~C1~~ C2 6
- neqo-latest vs. quinn: H DC LR C20 M S R Z 3 B U E L1 L2 :warning:C1 C2 6 BP BA
- neqo-latest vs. s2n-quic: H DC LR C20 M S R 3 B U E L1 L2 :warning:C1 C2 6
- neqo-latest vs. tquic: H DC LR C20 M R Z 3 B U :rocket:~~L1~~ L2 :rocket:~~C1~~ C2 6
neqo-latest as server
- aioquic vs. neqo-latest: H DC LR C20 M S R Z 3 B U A L1 L2 :warning:C1 C2 6 V2 BP BA
- chrome vs. neqo-latest: 3
- go-x-net vs. neqo-latest: H DC LR M B U A L2 C2 6 BP BA
- kwik vs. neqo-latest: H DC LR C20 M S R Z 3 B U A L1 L2 C1 C2 6 V2
- linuxquic vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 :warning:BA :rocket:~~BP~~ CM
- lsquic vs. neqo-latest: H DC LR C20 M S R Z 3 B E A :rocket:~~L1~~ L2 :rocket:~~C1~~ C2 6 V2 BP BA CM
- msquic vs. neqo-latest: H DC LR C20 M S R Z B U A L1 L2 C1 C2 6 V2 :rocket:~~BP~~ BA
- mvfst vs. neqo-latest: H DC LR :warning:M 3 B L2 C2 6 BP BA
- neqo vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 BP BA CM
- ngtcp2 vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 BP BA CM
- openssl vs. neqo-latest: H DC C20 S R 3 B L2 C2 6 BP BA
- picoquic vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 BP BA CM
- quic-go vs. neqo-latest: H DC LR C20 M S R Z 3 B U A L1 L2 C1 C2 6 BP :rocket:~~BA~~
- quiche vs. neqo-latest: H DC LR M S R Z 3 B A L1 L2 C1 C2 6 BP BA
- quinn vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A :warning:L1 L2 :rocket:~~C1~~ C2 6 BP BA
- s2n-quic vs. neqo-latest: H DC LR M S R 3 B E A L1 L2 C1 C2 6 BP BA
- tquic vs. neqo-latest: H DC LR M S R Z 3 B A L1 L2 C1 C2 6 BP BA
- xquic vs. neqo-latest: H DC LR C20 S R Z 3 B U A L1 L2 C1 C2 6 BP BA
Unsupported Interop Tests
QUIC Interop Runner, client vs. server
neqo-latest as client
- neqo-latest vs. aioquic: E CM
- neqo-latest vs. go-x-net: C20 S R Z 3 E L1 C1 V2 CM
- neqo-latest vs. haproxy: E CM
- neqo-latest vs. kwik: E CM
- neqo-latest vs. msquic: 3 E CM
- neqo-latest vs. mvfst: C20 S E V2 CM
- neqo-latest vs. nginx: E V2 CM
- neqo-latest vs. picoquic: CM
- neqo-latest vs. quic-go: E V2 CM
- neqo-latest vs. quiche: E V2 CM
- neqo-latest vs. quinn: V2 CM
- neqo-latest vs. s2n-quic: Z V2
- neqo-latest vs. tquic: E V2 CM
neqo-latest as server
- aioquic vs. neqo-latest: E
- chrome vs. neqo-latest: H DC LR C20 M S R Z B U E A L1 L2 C1 C2 6 V2 BP BA CM
- go-x-net vs. neqo-latest: C20 S R Z 3 E L1 C1 V2
- kwik vs. neqo-latest: E
- lsquic vs. neqo-latest: U
- msquic vs. neqo-latest: 3 E
- mvfst vs. neqo-latest: C20 S R U E V2
- openssl vs. neqo-latest: Z U E L1 C1 V2
- quic-go vs. neqo-latest: E V2
- quiche vs. neqo-latest: C20 U E V2
- s2n-quic vs. neqo-latest: C20 Z U V2
- tquic vs. neqo-latest: C20 U E V2
- xquic vs. neqo-latest: E V2
Benchmark results
Performance differences relative to e7be0197e0062929b260cd2384823f511c038703.
1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: :green_heart: Performance has improved.
time: [201.44 ms 201.76 ms 202.09 ms]
thrpt: [494.83 MiB/s 495.65 MiB/s 496.43 MiB/s]
change:
time: [-1.8627% -1.5707% -1.3001%] (p = 0.00 +1.5957% +1.8981%]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: :broken_heart: Performance has regressed.
time: [284.75 ms 286.69 ms 288.75 ms]
thrpt: [34.632 Kelem/s 34.880 Kelem/s 35.118 Kelem/s]
change:
time: [+1.7889% +2.7615% +3.6882%] (p = 0.00 -2.6873% -1.7575%]
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: [38.619 ms 38.781 ms 38.962 ms]
thrpt: [25.666 B/s 25.786 B/s 25.894 B/s]
change:
time: [-0.0084% +0.4839% +1.0186%] (p = 0.08 > 0.05)
thrpt: [-1.0084% -0.4816% +0.0084%]
Found 8 outliers among 100 measurements (8.00%)
1 (1.00%) high mild
7 (7.00%) high severe
1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: :green_heart: Performance has improved.
time: [207.54 ms 207.99 ms 208.66 ms]
thrpt: [479.25 MiB/s 480.80 MiB/s 481.83 MiB/s]
change:
time: [-2.2538% -1.9770% -1.5834%] (p = 0.00 +2.0168% +2.3058%]
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
decode 4096 bytes, mask ff: No change in performance detected.
time: [11.312 µs 11.346 µs 11.387 µs]
change: [-0.4607% -0.0168% +0.4153%] (p = 0.94 > 0.05)
Found 16 outliers among 100 measurements (16.00%)
1 (1.00%) low severe
4 (4.00%) low mild
1 (1.00%) high mild
10 (10.00%) high severe
decode 1048576 bytes, mask ff: No change in performance detected.
time: [2.9913 ms 3.0006 ms 3.0115 ms]
change: [-0.6900% -0.1944% +0.2857%] (p = 0.45 > 0.05)
Found 9 outliers among 100 measurements (9.00%)
9 (9.00%) high severe
decode 4096 bytes, mask 7f: No change in performance detected.
time: [19.572 µs 19.621 µs 19.677 µs]
change: [-0.2924% +0.2334% +0.9667%] (p = 0.58 > 0.05)
Found 14 outliers among 100 measurements (14.00%)
2 (2.00%) low severe
1 (1.00%) high mild
11 (11.00%) high severe
decode 1048576 bytes, mask 7f: No change in performance detected.
time: [5.0306 ms 5.0421 ms 5.0552 ms]
change: [-0.3901% -0.0206% +0.3346%] (p = 0.92 > 0.05)
Found 14 outliers among 100 measurements (14.00%)
14 (14.00%) high severe
decode 4096 bytes, mask 3f: No change in performance detected.
time: [6.2006 µs 6.2198 µs 6.2467 µs]
change: [-1.1008% -0.3174% +0.4508%] (p = 0.45 > 0.05)
Found 21 outliers among 100 measurements (21.00%)
8 (8.00%) low mild
5 (5.00%) high mild
8 (8.00%) high severe
decode 1048576 bytes, mask 3f: Change within noise threshold.
time: [1.7636 ms 1.7760 ms 1.7935 ms]
change: [+0.1664% +0.8745% +1.6562%] (p = 0.03 Found 11 outliers among 100 measurements (11.00%)
1 (1.00%) low mild
1 (1.00%) high mild
9 (9.00%) high severe1-streams/each-1000-bytes/wallclock-time: Change within noise threshold.
time: [586.54 µs 589.10 µs 591.97 µs]
change: [+0.2897% +0.8267% +1.4115%] (p = 0.00 Found 11 outliers among 100 measurements (11.00%)
11 (11.00%) high severe
1-streams/each-1000-bytes/simulated-time
time: [118.66 ms 118.90 ms 119.13 ms]
thrpt: [8.1973 KiB/s 8.2134 KiB/s 8.2296 KiB/s]
change:
time: [-0.5005% -0.2316% +0.0392%] (p = 0.10 > 0.05)
thrpt: [-0.0392% +0.2322% +0.5030%]
No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild1000-streams/each-1-bytes/wallclock-time: No change in performance detected.
time: [12.436 ms 12.471 ms 12.506 ms]
change: [-0.4853% -0.0234% +0.4182%] (p = 0.92 > 0.05)
1000-streams/each-1-bytes/simulated-time: No change in performance detected.
time: [2.3291 s 2.3323 s 2.3355 s]
thrpt: [428.18 B/s 428.76 B/s 429.35 B/s]
change:
time: [-0.0762% +0.1389% +0.3599%] (p = 0.21 > 0.05)
thrpt: [-0.3586% -0.1387% +0.0763%]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild
1000-streams/each-1000-bytes/wallclock-time: No change in performance detected.
time: [49.841 ms 49.951 ms 50.064 ms]
change: [-0.9866% -0.4596% -0.0309%] (p = 0.06 > 0.05)
1000-streams/each-1000-bytes/simulated-time: No change in performance detected.
time: [16.176 s 16.392 s 16.606 s]
thrpt: [58.806 KiB/s 59.576 KiB/s 60.371 KiB/s]
change:
time: [-2.6278% -0.6381% +1.4515%] (p = 0.54 > 0.05)
thrpt: [-1.4307% +0.6422% +2.6988%]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild
coalesce_acked_from_zero 1+1 entries: No change in performance detected.
time: [89.400 ns 89.798 ns 90.179 ns]
change: [-0.2759% +0.2421% +0.7853%] (p = 0.37 > 0.05)
Found 13 outliers among 100 measurements (13.00%)
11 (11.00%) high mild
2 (2.00%) high severe
coalesce_acked_from_zero 3+1 entries: Change within noise threshold.
time: [105.79 ns 106.11 ns 106.44 ns]
change: [-0.8331% -0.4272% -0.0351%] (p = 0.04 Found 14 outliers among 100 measurements (14.00%)
1 (1.00%) low mild
3 (3.00%) high mild
10 (10.00%) high severecoalesce_acked_from_zero 10+1 entries: No change in performance detected.
time: [105.18 ns 105.27 ns 105.46 ns]
change: [-0.6573% -0.3143% +0.0099%] (p = 0.07 > 0.05)
Found 7 outliers among 100 measurements (7.00%)
2 (2.00%) low severe
3 (3.00%) low mild
1 (1.00%) high mild
1 (1.00%) high severe
coalesce_acked_from_zero 1000+1 entries: :broken_heart: Performance has regressed.
time: [93.294 ns 93.915 ns 94.575 ns]
change: [+1.9528% +2.8722% +3.7806%] (p = 0.00 Found 9 outliers among 100 measurements (9.00%)
6 (6.00%) high mild
3 (3.00%) high severeRxStreamOrderer::inbound_frame(): :green_heart: Performance has improved.
time: [108.26 ms 108.44 ms 108.73 ms]
change: [-1.5421% -1.3550% -1.0943%] (p = 0.00 Found 34 outliers among 100 measurements (34.00%)
10 (10.00%) low severe
2 (2.00%) low mild
7 (7.00%) high mild
15 (15.00%) high severesent::Packets::take_ranges: No change in performance detected.
time: [4.5027 µs 4.6017 µs 4.6906 µs]
change: [-4.0171% -0.1738% +3.5499%] (p = 0.93 > 0.05)
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
transfer/pacing-false/varying-seeds/wallclock-time/run: Change within noise threshold.
time: [24.684 ms 24.724 ms 24.764 ms]
change: [-1.5500% -1.3450% -1.1386%] (p = 0.00 Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low mild
3 (3.00%) high mildtransfer/pacing-false/varying-seeds/simulated-time/run: No change in performance detected.
time: [25.169 s 25.199 s 25.230 s]
thrpt: [162.35 KiB/s 162.54 KiB/s 162.74 KiB/s]
change:
time: [-0.2141% -0.0173% +0.1781%] (p = 0.86 > 0.05)
thrpt: [-0.1777% +0.0173% +0.2146%]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
transfer/pacing-true/varying-seeds/wallclock-time/run: Change within noise threshold.
time: [25.366 ms 25.427 ms 25.487 ms]
change: [-0.7550% -0.4438% -0.1314%] (p = 0.01 transfer/pacing-true/varying-seeds/simulated-time/run: No change in performance detected.
time: [24.907 s 24.948 s 24.989 s]
thrpt: [163.91 KiB/s 164.18 KiB/s 164.45 KiB/s]
change:
time: [-0.3044% -0.0726% +0.1552%] (p = 0.52 > 0.05)
thrpt: [-0.1550% +0.0727% +0.3054%]
transfer/pacing-false/same-seed/wallclock-time/run: Change within noise threshold.
time: [24.359 ms 24.375 ms 24.390 ms]
change: [-1.4480% -1.3551% -1.2609%] (p = 0.00 Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mildtransfer/pacing-false/same-seed/simulated-time/run: No change in performance detected.
time: [25.234 s 25.234 s 25.234 s]
thrpt: [162.32 KiB/s 162.32 KiB/s 162.32 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000%] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000%]
transfer/pacing-true/same-seed/wallclock-time/run: Change within noise threshold.
time: [25.133 ms 25.167 ms 25.218 ms]
change: [-2.6919% -2.5025% -2.2784%] (p = 0.00 Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) low mild
2 (2.00%) high mild
1 (1.00%) high severetransfer/pacing-true/same-seed/simulated-time/run: No change in performance detected.
time: [25.069 s 25.069 s 25.069 s]
thrpt: [163.39 KiB/s 163.39 KiB/s 163.39 KiB/s]
change:
time: [+0.0000% +0.0000% +0.0000%] (p = NaN > 0.05)
thrpt: [+0.0000% +0.0000% +0.0000%]
Download data for profiler.firefox.com or download performance comparison data.
Client/server transfer results
Performance differences relative to e7be0197e0062929b260cd2384823f511c038703.
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 vs. google | 476.2 ± 3.7 | 471.7 | 488.1 | 67.2 ± 8.6 | ||
| google vs. neqo (cubic, paced) | 281.0 ± 4.3 | 271.8 | 295.9 | 113.9 ± 7.4 | :broken_heart: 1.4 | 0.5% |
| msquic vs. msquic | 193.0 ± 66.3 | 138.6 | 498.9 | 165.8 ± 0.5 | ||
| msquic vs. neqo (cubic, paced) | 225.1 ± 71.6 | 155.0 | 449.6 | 142.2 ± 0.4 | 3.9 | 1.8% |
| neqo vs. google (cubic, paced) | 777.4 ± 7.2 | 718.0 | 792.3 | 41.2 ± 4.4 | -2.0 | -0.3% |
| neqo vs. msquic (cubic, paced) | 156.7 ± 4.2 | 150.7 | 165.0 | 204.3 ± 7.6 | 0.3 | 0.2% |
| neqo vs. neqo (cubic) | 94.7 ± 4.0 | 87.8 | 104.4 | 338.0 ± 8.0 | -0.5 | -0.5% |
| neqo vs. neqo (cubic, paced) | 94.3 ± 4.1 | 88.3 | 105.8 | 339.3 ± 7.8 | :green_heart: -1.6 | -1.7% |
| neqo vs. neqo (reno) | 95.8 ± 4.3 | 88.0 | 106.0 | 333.9 ± 7.4 | -0.1 | -0.1% |
| neqo vs. neqo (reno, paced) | 94.8 ± 4.5 | 87.1 | 105.7 | 337.6 ± 7.1 | :green_heart: -2.3 | -2.4% |
| neqo vs. quiche (cubic, paced) | 193.2 ± 4.6 | 186.5 | 202.1 | 165.7 ± 7.0 | 0.4 | 0.2% |
| neqo vs. s2n (cubic, paced) | 222.7 ± 4.7 | 214.0 | 231.3 | 143.7 ± 6.8 | :broken_heart: 2.7 | 1.2% |
| quiche vs. neqo (cubic, paced) | 152.3 ± 5.3 | 139.4 | 161.2 | 210.0 ± 6.0 | 1.1 | 0.7% |
| quiche vs. quiche | 143.5 ± 5.4 | 135.1 | 158.3 | 223.0 ± 5.9 | ||
| s2n vs. neqo (cubic, paced) | 174.5 ± 4.7 | 164.1 | 188.5 | 183.4 ± 6.8 | 0.9 | 0.5% |
| s2n vs. s2n | 247.3 ± 17.9 | 233.7 | 349.9 | 129.4 ± 1.8 |
Download data for profiler.firefox.com or download performance comparison data.
I think the sanitizer failure is unrelated, but we should fix or suppress it. It's also happening on other PRs.